Spark CSV Escape не работает

Я использую spark-core версии 2.0.1 со Scala 2.11. У меня есть простой код для чтения CSV-файла, который имеет \ escapes.

val myDA = spark.read
      .option("quote",null)
    .schema(mySchema)
    .csv(filePath)

Согласно документации \ является escape-последовательностью по умолчанию для чтения csv. Но это не работает. Spark читает \ как часть моих данных. Например, столбец «Город» в CSV-файле имеет вид north rocks\,au . Я ожидаю, что столбец города должен читаться в коде как northrocks,au. Но вместо этого spark читает его как northrocks\ и перемещает au в следующий столбец.

Я пробовал следующее, но не работал:

  • Явно определенный escape .option("escape","\")
  • Побег изменен на | или : в файле и в коде
  • Я пытался использовать библиотеку spark-csv.

Кто-нибудь сталкивается с такой же проблемой? Я что-то упускаю?

Спасибо


person JNish    schedule 27.10.2016    source источник
comment
может заменить то, как вы разделяете их? ложь north rocks:au. Я бы также попробовал заключить все это в кавычки, например 'north rocks\,au'   -  person raam86    schedule 27.10.2016
comment
К сожалению, у меня нет контроля над входным файлом.   -  person JNish    schedule 27.10.2016
comment
Интересный вывод: экранирование работает, если данные указаны в кавычках, но не в противном случае.   -  person JNish    schedule 27.10.2016


Ответы (1)


Поэтому побег будет работать только с кавычками. Рекомендация использовать кавычки, если вы хотите сбежать.

https://github.com/databricks/spark-csv/issues/390

person JNish    schedule 27.10.2016