从pyspark列中删除十进制值

从pyspark列中删除十进制值,pyspark,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 我们不能将此列设为长类型,因为它也有文本。如何实现它?使用regexp\u replace。将\..*$替换为空字符串' 此表达式查找点,并替换其后的所有

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

我们不能将此列设为长类型,因为它也有文本。如何实现它?

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

此表达式查找
,并替换其后的所有内容

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

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

此表达式查找
,并替换其后的所有内容

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