我有一个pyspark dataframe列,其中混合了一些值,例如一些是字符串,有些是数字,如下所示-
Source_ids
abc_123
1234.0
345
abc_cad
K-123
540.0
456.0
我想删除小数点后的任何地方。所以结果应该是
Source_ids
abc_123
1234
345
abc_cad
K-123
540
456
由于此列还包含文本,因此我们无法将其设置为长型。我该如何实现?
答案 0 :(得分:1)
使用regexp_replace
。将\..*$
替换为空字符串''
。
此表达式找到dot
并替换之后的所有内容。
from pyspark.sql.functions import *
df.withColumn("Source_ids", regexp_replace('Source_ids', '\..*$', '')).show()