首页 文章

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

提问于
浏览
0

我有以 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, Actuator 0):java.lang .ArrayIndexOutOfBoundsException:63

1 回答

  • 0

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

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

    相关SO:Zip support in Apache Spark

相关问题