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

PySpark中如何用分隔符拆分DataFrame列文本?解决拆分异常问题

解决PySpark中拆分price列提取价格数值的问题

你的代码出现问题的核心原因:|是正则表达式的特殊元字符,代表“逻辑或”,直接用它作为split的分隔符时,会将字符串按单个字符拆分,因此getItem(0)只能拿到第一个字符。

方案1:修正split的分隔符(转义特殊字符)

将|转义为正则可识别的分隔符,使用原始字符串r"\|"或者双反斜杠"\\|"即可:

from pyspark.sql.functions import split, col

products_price = products_price.withColumn(
    "new_price", 
    split(col("price"), r"\|").getItem(0)
)

方案2:使用regexp_extract提取数字(更稳妥)

如果price列格式存在潜在变化(比如分隔符不是|,或数字位置有差异),推荐用正则提取数字部分,精准匹配开头的整数或小数:

from pyspark.sql.functions import regexp_extract, col

products_price = products_price.withColumn(
    "new_price", 
    regexp_extract(col("price"), r"^\d+(\.\d+)?", 0)
)

这个正则表达式的含义是:匹配以数字开头,后续可选小数点和数字的内容,确保只提取价格的纯数值部分。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 21:15:37