如何替换PySpark DataFrame中的\r\n字符
PySpark替换字符串中的
\r\n问题解决方案 你的代码无效的核心原因是:Python会将字符串中的"\r\n"解析为实际的回车换行符,但你的DataFrame存储的是字面量的\r\n字符序列(即字符串里是\、r、\、n这四个独立字符),导致正则表达式无法匹配目标内容。
正确实现方式
你需要通过以下两种方式之一,让正则引擎识别字面量的\r\n:
方式1:使用Python原始字符串
from pyspark.sql.functions import regexp_replace df = df.withColumn("newvalue", regexp_replace("value", r"\\r\\n", "example"))方式2:使用双重转义字符串
from pyspark.sql.functions import regexp_replace df = df.withColumn("newvalue", regexp_replace("value", "\\\\r\\\\n", "example"))
验证结果
执行后newvalue列的内容将变为:
'"description": "this is good example"'
额外说明
如果你的DataFrame中存储的是实际的回车换行符(而非字面量转义字符),那么你最初的代码是有效的,但根据你的示例内容,显然属于前者场景。
内容的提问来源于stack exchange,提问作者Arthur
相关产品推荐
相关产品推荐

