如何将file.deflate.gz文件加载到spark数据帧中?

时间:2017-08-17 18:49:54

标签: apache-spark spark-dataframe

我的源文件以delflate.gz格式压缩。在将数据加载到Spark数据框架时,它失败并出现ArrayOutofBound异常。

val cf = spark.read.option("header", "false").option("delimiter", "\u0001").option("codec", "deflate").csv("path/xxx.deflate.gz")
cf.show()

错误:

  

org.apache.spark.SparkException:由于阶段失败导致作业中止:阶段15.0中的任务0失败4次,最近失败:阶段15.0中丢失任务0.3(TID 871,10.180.255.33,执行者0):java .lang.ArrayIndexOutOfBoundsException:63

1 个答案:

答案 0 :(得分:0)

假设通过deflate gzip文件你的意思是一个普通的gzip文件(因为gzip基于DEFLATE算法),你的问题可能在于CSV文件的格式化。您可能在每行上具有不一致的字段(列)数量,并且可能需要更改读取模式以使其允许。

但是,如果您有一些特殊的雪花Gzip文件并且文件扩展名保持这种方式(不推荐),您可以通过读取二进制文件并手动解压缩来做一些艰难的事情。 sc.binaryFiles函数是主要尝试的函数。

相关SO:Zip support in Apache Spark