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

标签 azure dataframe apache-spark databricks

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

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

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

最佳答案

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

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

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

from pyspark.sql import functions as F

df = spark.createDataFrame([("\ttext1", 'text2\n', 'te\rxt3'), ("text1\t", '\ntext2', 't\rext3')], ['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|
+------+------+------+

关于azure - pyspark从所有列的数据中删除控制字符的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59860765/

相关文章:

azure - Application Insights 不捕获信息级别日志记录

python - 在列出总共两列的每第二行之后插入索引?

python - 使用 dataframe.query 从 pd.DataFrame 中包含的列表中选择值

scala - Spark上下文创建错误

azure - 如何配置 Azure 缓存以使用自定义 IDataCacheObjectSerializer 类?

azure - 使用数据工厂创建管道,并将事件从 azure blob 存储复制到数据湖存储

azure - 如何使用 BizTalk 2013 连接到基于 Azure 存储帐户解决方案的 SFTP 服务

r - 如何根据第二个数据帧中的一系列可能值合并两个数据帧,但保留第一个数据帧的值?

apache-spark - 如何查看在 kubernetes 中运行的 Livy 中的执行程序日志

json - 如何将内存中的 JSON 字符串读入 Spark DataFrame