首页 > 解决方案 > 从 pyspark 列中删除十进制值

问题描述

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

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

标签: pyspark

解决方案


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

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

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

推荐阅读