Я читаю файл, разделенный каналом (|). Есть поля с двойными кавычками, которые создают проблемы при чтении и записи данных в другой файл.
Входной файл приведен ниже.
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