Spark 数据框未正确将双引号写入 csv 文件

Juh*_*han 1 csv scala dataframe apache-spark

我正在读取由管道(|)分隔的文件。有双引号的字段在读取数据和将数据写入另一个文件时会出现问题。输入文件如下。

123|"ABC"|hello
124|"AB|hello all
125|A"B"|hellll
Run Code Online (Sandbox Code Playgroud)

代码如下。

val myDf = session.sqlContext.read.format("csv")
      .option("charset", "UTF8")
      .option("inferSchema", "true")
      .option("quote","\u0000")
      .schema(mySchema)
      .option("delimiter", "|")
      .option("nullValue", "")
      .option("treatEmptyValuesAsNulls", "true")
      .load("path to file")
Run Code Online (Sandbox Code Playgroud)

当我做 myDf.show() 在控制台中正确显示输出时。但是当我将相同的数据帧写入 CSV 文件时,所有双引号都被替换为\".

myDf.repartition(1).write
      .format("com.databricks.spark.csv")
      .option("delimiter", "|")
      .save("Path to save file")
Run Code Online (Sandbox Code Playgroud)

在 csv 文件中输出:

123|"\"ABC\""|hello
124|"\"AB"|hello all
125|"A\"B\""|hellll
Run Code Online (Sandbox Code Playgroud)

为什么会发生这种情况,有什么方法可以像下面预期的那样获得 csv。

123|"ABC"|hello
124|"AB|hello all
125|A"B"|hellll
Run Code Online (Sandbox Code Playgroud)

oll*_*ik1 5

可以通过禁用转义和引用来完成

myDf.repartition(1).write
      .format("com.databricks.spark.csv")
      .option("escape", "")
      .option("quote", "")
      .option("delimiter", "|")
      .save("Path to save file")
Run Code Online (Sandbox Code Playgroud)