Spark SQL - загрузка файлов CSV / PSV с некоторыми искаженными записями
Мы загружаем иерархии каталогов файлов с помощью Spark и конвертируем их в Parquet. В сотнях файлов, разделенных каналом, десятки гигабайт. Некоторые сами по себе довольно большие.
Каждый, скажем, сотый файл имеет строку или две, в которых есть дополнительный разделитель, который прерывает весь процесс (или файл).
Мы загружаем, используя:
sqlContext.read
.format("com.databricks.spark.csv")
.option("header", format("header"))
.option("delimiter", format("delimeter"))
.option("quote", format("quote"))
.option("escape", format("escape"))
.option("charset", "UTF-8")
// Column types are unnecessary for our current use cases.
//.option("inferschema", "true")
.load(glob)
Есть ли какое-либо расширение или механизм обработки событий со Spark, который мы могли бы присоединить к логике, которая читает строки, что, если встречается искаженная строка, просто пропускает строку, а не завершает процесс на ней?
(Мы планируем провести дополнительную предварительную обработку, но это будет самое быстрое и критическое исправление.)