我正在读取由竖线(|)分隔的文件。有些字段在将数据读取和写入另一个文件时会引起双引号。 输入文件如下。
123|"ABC"|hello
124|"AB|hello all
125|A"B"|hellll
下面给出了代码。
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")
当我这样做时,myDf.show()在控制台中正确显示输出。
但是,当我将相同的数据帧写入CSV文件时,所有双引号都被\"
替换。
myDf.repartition(1).write
.format("com.databricks.spark.csv")
.option("delimiter", "|")
.save("Path to save file")
csv文件中的输出:
123|"\"ABC\""|hello
124|"\"AB"|hello all
125|"A\"B\""|hellll
为什么会发生这种情况,请问有什么方法可以像下面预期的那样获得csv。
123|"ABC"|hello
124|"AB|hello all
125|A"B"|hellll
答案 0 :(得分:0)
可以同时禁用转义和引号
myDf.repartition(1).write
.format("com.databricks.spark.csv")
.option("escape", "")
.option("quote", "")
.option("delimiter", "|")
.save("Path to save file")