pyspark 从所有列的数据中删除控制字符的最佳方法



我有一个数据帧,其中包含包含回车符、换行符和制表符的列。我找到了一个带有熊猫解决方案的帖子:

replace(to_replace=[r"\t|\n|\r", "t|n|r"], value=["",""], regex=True, inplace=<INPLACE>)

如何在 Spark 数据帧中执行此操作?

要替换回车符、换行符和制表符,可以使用s

\s = [ \t\r\f\v]

您需要在所有数据帧列中进行替换的 pyspark 代码:

from pyspark.sql import functions as F
df = spark.createDataFrame([("ttext1", 'text2n', 'terxt3'), ("text1t", 'ntext2', 'trext3')], ['col1', 'col2', 'col3'])
expr = [F.regexp_replace(F.col(column), pattern="s+", replacement=",").alias(column) for column in df.columns]
df.select(expr).show()
+------+------+------+
|  col1|  col2|  col3|
+------+------+------+
|,text1|text2,|te,xt3|
|text1,|,text2|t,ext3|
+------+------+------+

最新更新