从pyspark列中删除十进制值

时间:2020-10-08 01:33:08

标签: pyspark

我有一个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

由于此列还包含文本,因此我们无法将其设置为长型。我该如何实现?

1 个答案:

答案 0 :(得分:1)

使用regexp_replace。将\..*$替换为空字符串''

此表达式找到dot并替换之后的所有内容。

from pyspark.sql.functions import *
df.withColumn("Source_ids", regexp_replace('Source_ids', '\..*$', '')).show()