Spark SQL - Laden von csv / psv-Dateien mit einigen fehlerhaften Datensätzen

Wir laden mit Spark Hierarchien von Dateiverzeichnissen und konvertieren sie nach Parquet. In Hunderten von durch Pipes getrennten Dateien befinden sich zehn Gigabyte. Einige sind selbst ziemlich groß.

Jede 100. Datei hat beispielsweise eine oder zwei Zeilen mit einem zusätzlichen Begrenzer, der den gesamten Prozess (oder die Datei) zum Abbruch bringt.

Wir laden mit:

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)

Gibt es eine Erweiterung oder einen Mechanismus zur Ereignisbehandlung mit Spark, die wir an die Logik zum Lesen von Zeilen anhängen könnten, die bei Auftreten der fehlerhaften Zeile die Zeile einfach überspringt, anstatt den Prozess darauf fehlzuschlagen?

(Wir planen eine weitere Vorverarbeitung, dies wäre jedoch die unmittelbarste und kritischste Lösung.)

Antworten auf die Frage(2)

Ihre Antwort auf die Frage