다른 스키마를 사용하여 손상된 Parquet 파일을 처리하는 방법

문제

다양한 스키마가 있는 기본적으로 독립적인 Parquet 파일의 큰 목록이 있다고 가정해 보겠습니다. 특정 스키마와 일치하는 파일만 읽고 일치하지 않는 파일은 건너뛰려고 합니다.

한 가지 해결 방법은 파일을 순서대로 읽고, 스키마를 식별하고, DataFrames 를 통합하는 것입니다. 그러나 이 방법은 수십만 개의 파일이 있는 경우에는 실용적이지 않습니다.

솔루션

Apache Spark 속성을 로 설정한 spark.sql.files.ignoreCorruptFilestrue 다음 원하는 스키마가 있는 파일을 읽습니다. 지정된 스키마와 일치하지 않는 파일은 무시됩니다. 결과 데이터 세트에는 지정된 스키마와 일치하는 파일의 데이터만 포함됩니다.

를 사용하여 Spark 속성을 설정합니다. spark.conf.set

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

또는 Spark 구성에서 이 속성을 설정할 수 있습니다.