You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用PySpark将字符串类型列中的整数替换为NULL

Spark整数字符串转NULL实现方案

针对你使用的Spark 2.1.1.2.6.1.0-129版本,你可以通过条件判断结合正则匹配的方式实现需求,regexp_replace仅支持替换为固定字符串,无法直接生成NULL值,调整写法如下:

1. 保留selectExpr写法的实现

my_df = my_df.selectExpr(
    "CASE WHEN states RLIKE '^-?[0-9]+$' THEN NULL ELSE states END AS states",
    "someOtherColumn"
)

上述逻辑说明:

  • 用RLIKE正则匹配校验states列是否为纯整数字符串
  • 匹配成功时直接返回Spark内置NULL值,Python端读取时会自动转为None类型
  • 匹配失败时返回原州名字符串,不影响正常数据

2. 可选调整说明

如果你的业务场景中不存在负整数值,可将正则中的-?移除,调整为'^[0-9]+$'即可仅匹配正整数字符串。

内容的提问来源于stack exchange,提问作者Zaki Siyaji

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 12:24:05