从 pyspark 列中删除十进制值
Posted
技术标签:
【中文标题】从 pyspark 列中删除十进制值【英文标题】:Remove decimal value from pyspark column 【发布时间】:2020-10-08 01:33:08 【问题描述】:我有一个 pyspark 数据框列,其中混合了一些值,比如一些是字符串,一些是下面的数字 -
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】:使用regexp_replace
。将\..*$
替换为空字符串''
。
此表达式找到dot
并替换之后的所有内容。
from pyspark.sql.functions import *
df.withColumn("Source_ids", regexp_replace('Source_ids', '\..*$', '')).show()
【讨论】:
以上是关于从 pyspark 列中删除十进制值的主要内容,如果未能解决你的问题,请参考以下文章