web-dev-qa-db-ja.com

Spark-読み取り時に空のgzipファイルをスキップまたは無視する方法

私は数百のgzip圧縮されたテキストファイルがそれぞれs3にある数百のフォルダーを持っています。それらをspark.read.csv()でデータフレームに読み取ろうとしています。

ファイルの中には、長さがゼロのものがあり、エラーが発生します。

Java.io.EOFException:予期しない入力ストリームの終わり

コード:

_df = spark.read.csv('s3n://my-bucket/folder*/logfiles*.log.gz',sep='\t',schema=schema)
_

私はmodeDROPMALFORMEDに設定してsc.textFile()で読み取ろうとしましたが、うまくいきませんでした。

空または壊れたgzipファイルを処理する最良の方法は何ですか?

19
Antti

Spark 2.1から開始して、spark.sql.files.ignoreCorruptFilesオプションを有効にすることで破損したファイルを無視できます。これをspark-submitまたはpysparkコマンドに追加します。

--conf spark.sql.files.ignoreCorruptFiles = true

17