我有几百个文件夹,其中包含数千个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文件的最佳方法是什么?
答案 0 :(得分:16)
从Spark 2.1开始,您可以通过启用 spark.sql.files.ignoreCorruptFiles 选项来忽略损坏的文件。将其添加到spark-submit或pyspark命令:
- conf spark.sql.files.ignoreCorruptFiles = true