Apache spark 从spark读取gzip拼花文件

Apache spark 从spark读取gzip拼花文件,apache-spark,Apache Spark,我有一个拼花文件,我正在与spark一起阅读: SparkSession.builder() .appName("test") .config("spark.sql.parquet.compression.codec", "gzip") .read().parquet(resourcePath) 这是用于读取拼花地板文件的代码段。 当文件未压缩时,一切正常,但当我gzip它时: gzip fileName.pa

我有一个拼花文件,我正在与spark一起阅读:

SparkSession.builder()
    .appName("test")
    .config("spark.sql.parquet.compression.codec", "gzip")
    .read().parquet(resourcePath)
这是用于读取拼花地板文件的代码段。 当文件未压缩时,一切正常,但当我gzip它时:

gzip fileName.parquet
然后我得到一个RuntimeException:


但是gzip格式应该被支持,它被支持,我在这里做错了什么?

gzip由Spark和Parquet支持,但不是这样

ApacheParquet是ApacheHadoop生态系统中一种免费的、开源的、面向列的数据存储格式。[…]它提供了高效的数据压缩和编码方案,增强了处理大量复杂数据的性能

所以拼花是一种可以使用gzip作为压缩算法的文件格式,但是如果你自己用gzip压缩一个拼花文件,它就不再是一个拼花文件了。例如,在spark中,您可以执行以下操作:

val spark=SparkSession.builder .configspark.sql.parquet.compression.codec,gzip .getOrCreate spark.range 10.write.parquet…/test.parquet 如果我看一下test.parquet,它是一个包含gzip文件的目录:

>复合地板/ 零件-00000-890dc5e5-ccfe-4e60-877a-79585d444149-c000.gz.镶木地板 零件-00001-890dc5e5-ccfe-4e60-877a-79585d444149-c000.gz.镶木地板 _成功 Spark还支持gzip文件。因此,如果我创建一个文本文件,然后像这样对其进行gzip处理:

>cat file.txt ab 光盘 >gzip文件.txt 带着火花:

SparkSession.builder()
    .appName("test")
    .config("spark.sql.parquet.compression.codec", "gzip")
    .read().parquet(resourcePath)
scala>sc.textFilehdfs:///tmp/file.txt.gz.collect res6:Array[String]=Arrayab,cd
Gzip由Spark和拼花地板支持,但不是这样

ApacheParquet是ApacheHadoop生态系统中一种免费的、开源的、面向列的数据存储格式。[…]它提供了高效的数据压缩和编码方案,增强了处理大量复杂数据的性能

所以拼花是一种可以使用gzip作为压缩算法的文件格式,但是如果你自己用gzip压缩一个拼花文件,它就不再是一个拼花文件了。例如,在spark中,您可以执行以下操作:

val spark=SparkSession.builder .configspark.sql.parquet.compression.codec,gzip .getOrCreate spark.range 10.write.parquet…/test.parquet 如果我看一下test.parquet,它是一个包含gzip文件的目录:

>复合地板/ 零件-00000-890dc5e5-ccfe-4e60-877a-79585d444149-c000.gz.镶木地板 零件-00001-890dc5e5-ccfe-4e60-877a-79585d444149-c000.gz.镶木地板 _成功 Spark还支持gzip文件。因此,如果我创建一个文本文件,然后像这样对其进行gzip处理:

>cat file.txt ab 光盘 >gzip文件.txt 带着火花:

SparkSession.builder()
    .appName("test")
    .config("spark.sql.parquet.compression.codec", "gzip")
    .read().parquet(resourcePath)
scala>sc.textFilehdfs:///tmp/file.txt.gz.collect res6:Array[String]=Arrayab,cd