問題
假設您有一個很大的列表,其中包含基本獨立的Parquet文件,具有各種不同的模式。您希望隻讀取那些匹配特定模式的文件,並跳過不匹配的文件。
一種解決方案可能是按順序讀取文件,識別模式,然後聯合DataFrames在一起。但是,當有數十萬個文件時,這種方法是不切實際的。
解決方案
設置Apache Spark屬性spark.sql.files.ignoreCorruptFiles來真正的然後使用所需的模式讀取文件。與指定模式不匹配的文件將被忽略。結果數據集隻包含與指定架構匹配的文件中的數據。
設置Spark屬性使用spark.conf.set:
spark.conf.set(“spark.sql.files。ignoreCorruptFiles”、“真正的”)