私は数百のgzip圧縮されたテキストファイルがそれぞれs3にある数百のフォルダーを持っています。それらをspark.read.csv()
でデータフレームに読み取ろうとしています。
ファイルの中には、長さがゼロのものがあり、エラーが発生します。
Java.io.EOFException:予期しない入力ストリームの終わり
コード:
_df = spark.read.csv('s3n://my-bucket/folder*/logfiles*.log.gz',sep='\t',schema=schema)
_
私はmode
をDROPMALFORMED
に設定してsc.textFile()
で読み取ろうとしましたが、うまくいきませんでした。
空または壊れたgzipファイルを処理する最良の方法は何ですか?
Spark 2.1から開始して、spark.sql.files.ignoreCorruptFilesオプションを有効にすることで破損したファイルを無視できます。これをspark-submitまたはpysparkコマンドに追加します。
--conf spark.sql.files.ignoreCorruptFiles = true