Zpracování poškozených souborů Parquet s jiným schématem

Problém

Řekněme, že máte velký seznam velmi nezávislých souborů Parquet, s různými schématy. Chcete číst pouze ty soubory, které odpovídají konkrétnímu schématu, a přeskočit soubory, které se neshodují.

Jedním řešením může být čtení souborů v sekvenci, identifikaci schématu a sjednocení DataFrames dohromady. Tento přístup je ale nepraktický, pokud existují stovky tisíc souborů.

Řešení

Nastavte vlastnost Apache Spark spark.sql.files.ignoreCorruptFiles na true a pak si přečtěte soubory s požadovaným schématem. Soubory, které neodpovídají zadanému schématu, se ignorují. Výsledná datová sada obsahuje pouze data z těch souborů, které odpovídají zadanému schématu.

Nastavte vlastnost Spark pomocí spark.conf.set :

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

Případně můžete tuto vlastnost nastavit v konfiguraci Sparku.