我的源文件以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
答案 0 :(得分:0)
假设通过deflate gzip文件你的意思是一个普通的gzip文件(因为gzip基于DEFLATE算法),你的问题可能在于CSV文件的格式化。您可能在每行上具有不一致的字段(列)数量,并且可能需要更改读取模式以使其允许。
但是,如果您有一些特殊的雪花Gzip文件并且文件扩展名保持这种方式(不推荐),您可以通过读取二进制文件并手动解压缩来做一些艰难的事情。 sc.binaryFiles
函数是主要尝试的函数。