Python/Pyspark按空格拆分字符串跳过后续接数字分隔符并删除末尾分号
Pyspark 字符串转数组列解决方案
实现逻辑
- 第一步:先清理原字符串末尾的分号和尾随空白,避免拆分后残留分号
- 第二步:使用正则正向后顾断言匹配分隔符:仅匹配前面是数字的空格作为拆分点,和你给出的示例输出完全匹配
完整代码
首先导入依赖函数:
from pyspark.sql.functions import col, split, regexp_replace
执行转换逻辑:
data = data.withColumn( "newcolumn", split( # 先删除末尾的分号和所有尾随空白字符 regexp_replace(col("Column"), r"[;\s]+$", ""), # 仅匹配前面为数字的空格作为拆分分隔符 r"(?<=\d)\s" ) )
效果验证
对给出的输入示例执行后输出完全符合预期:
| Column | newcolumn |
|---|---|
| "511 520 NA 611;" | [511,520,NA 611] |
| "322 GA 620" | [322,GA 620] |
| "3 321; " | [3,321] |
| "334 344" | [334,344] |
内容的提问来源于stack exchange,提问作者BADS
相关产品推荐
相关产品推荐

