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

Python/PySpark实现字符串按空格拆分、后接数字时跳过拆分生成新列

PySpark 按指定规则拆分字符串新增列实现方法

你的拆分需求可以通过负向先行断言的正则表达式实现,只匹配「后面不紧跟数字的空格」作为分隔符即可。

核心正则说明

使用正则 \s(?![0-9]) 作为split函数的分隔符参数:

  • \s 匹配单个空格
  • (?![0-9]) 是负向先行断言,限制前面匹配的空格后面不能紧跟数字,完全满足「空格后跟数字就跳过本次拆分」的规则

最终代码

# 导入依赖函数
from pyspark.sql.functions import split, col
# 修改split的分隔符参数即可
data = data.withColumn("newcolumn", split(col("column"), r"\s(?![0-9])"))

效果验证

按照你的输入示例运行后,newcolumn列的输出和预期完全一致:

  • 输入 "511 520 NA 611" → 输出 ["511","520","NA 611"]
  • 输入 "322 GA 620" → 输出 ["322","GA 620"]
  • 输入 "3 321" → 输出 ["3","321"]
  • 输入 "334 344" → 输出 ["334","344"]

可选兼容优化

如果数据源存在多个连续空格的场景,可以把正则修改为 \s+(?![0-9]),即可匹配多个连续的非数字后置空格作为拆分点。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 18:27:02