【发布时间】:2020-07-25 01:01:24
【问题描述】:
我使用的是 spark 版本 2.4.0。我知道反斜杠是 spark 中的默认转义字符,但我仍然面临以下问题。 我正在将 csv 文件读入 spark 数据帧(使用 pyspark 语言)并将数据帧写回 csv。
我的源 csv 文件中有一些“//”(如下所述),其中第一个反斜杠表示转义字符,第二个反斜杠是实际值。
Test.csv(源数据)
Col1,Col2,Col3,Col4
1,"abc//",xyz,Val2
2,"//",abc,Val2
我正在阅读 Test.csv 文件并使用以下代码创建数据框:
df = sqlContext.read.format('com.databricks.spark.csv').schema(schema).option("escape", "\\").options(header='true').load("Test.csv")
并使用以下代码读取 df 数据帧并写回 Output.csv 文件:
df.repartition(1).write.format('csv').option("emptyValue", empty).option("header", "false").option("escape", "\\").option("path", 'D:\TestCode\Output.csv').save(header = 'true')
输出.csv
Col1,Col2,Col3,Col4
1,"abc//",xyz,Val2
2,/,abc,Val2
在 Output.csv 的第二行中,转义字符与引号 ("") 一起丢失。 我的要求是在 output.csv 中也保留转义字符。 任何形式的帮助都将不胜感激。
提前致谢。
【问题讨论】:
标签: apache-spark pyspark apache-spark-sql