Обработка поврежденных файлов Parquet с помощью другой схемы

Проблема

Предположим, у вас есть большой список фактически независимых файлов Parquet с различными схемами. Необходимо считать только те файлы, которые соответствуют определенной схеме, и пропустить несовпадающие файлы.

Одним из решений может быть последовательное чтение файлов, указание схемы и объединение DataFrames вместе. Однако этот подход непрактичен при наличии сотен тысяч файлов.

Решение

Задайте для свойства Apache Spark spark.sql.files.ignoreCorruptFiles значение true , а затем прочтите файлы с требуемой схемой. Файлы, которые не соответствуют указанной схеме, игнорируются. Результирующий набор данных содержит только данные из этих файлов, соответствующих указанной схеме.

Задайте свойство Spark с помощью spark.conf.set :

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

Кроме того, это свойство можно задать в конфигурации Spark.