首页 > 解决方案 > 如何使用 regexp_replace() 从 spark 数据集中替换 Ctrl+M 字符?

问题描述

您好,有一个 Spark 数据集,其中一个Ctrl+M列的数据中存在一个字符,结果记录被分成两条记录,并且数据损坏。
即使我已经添加了处理正则表达式换行符的代码\r\n,但我不确定这个相同的代码是否能够处理 Ctrl+M,即^M

filtered = filtered.selectExpr(convertListToSeq(colsList))
              .withColumn(newCol, functions.when(filtered.col(column).notEqual("null"), functions.regexp_replace(filtered.col(column), "[\r\n]", " ")));

代码会functions.regexp_replace(filtered.col(column), "<ascii for Ctrl+M>", " ");起作用吗?..我不知道 Ctrl+M 的 ascii 值。

标签: apache-sparkapache-spark-sql

解决方案


推荐阅读