Spark Dataframe не записывает двойные кавычки в CSV-файл должным образом - PullRequest
0 голосов
/ 21 мая 2019

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

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

1 Ответ

0 голосов
/ 21 мая 2019

Это можно сделать, отключив как экранирование, так и цитату

myDf.repartition(1).write
      .format("com.databricks.spark.csv")
      .option("escape", "")
      .option("quote", "")
      .option("delimiter", "|")
      .save("Path to save file")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...