Hantera skadade Parquet-filer med ett annat schema

Problem

Anta att du har en stor lista med huvudsakligen oberoende Parquet-filer, med en mängd olika scheman. Du vill bara läsa de filer som matchar ett särskilt schema och hoppa över de filer som inte matchar.

En lösning kan vara att läsa filerna i följd, identifiera schemat och förena DataFrames ihop. Den här metoden är dock inte praktisk om det finns hundratals tusen filer.

Lösning

Ange Apache Spark egenskapen spark.sql.files.ignoreCorruptFiles till true och Läs sedan filerna med det önskade schemat. Filer som inte matchar det angivna schemat ignoreras. Den resulterande data uppsättningen innehåller endast data från de filer som matchar det angivna schemat.

Ange egenskapen Spark med spark.conf.set :

spark.conf.set("spark.sql.files.ignoreCorruptFiles", "true")

Du kan också ange den här egenskapen i Spark-konfigurationen.