【问题标题】:How to load file.deflate.gz file into spark dataframe?如何将 file.deflate.gz 文件加载到 spark 数据框中?
【发布时间】:2018-01-26 07:54:34
【问题描述】:

我有以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

【问题讨论】:

  • 如果文件不是用gzip编解码器压缩的,那为什么要.gz扩展?你只是在找麻烦。
  • 顺便说一句,代码示例有一个“代码示例”格式。用它。真的。

标签: apache-spark spark-dataframe


【解决方案1】:

假设 deflate gzip 文件是指常规 gzip 文件(因为 gzip 基于 DEFLATE 算法),您的问题很可能出在 CSV 文件的格式上。您可能在每行上的字段(列)数量不一致,并且可能需要更改读取模式以使其允许。

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

相关SO:Zip support in Apache Spark

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-03-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-13
    • 1970-01-01
    • 2017-12-17
    • 2017-06-03
    相关资源
    最近更新 更多