Apache spark gzipped拼花地板文件是否可以在Spark的HDFS中拆分?

Apache spark gzipped拼花地板文件是否可以在Spark的HDFS中拆分?,apache-spark,gzip,parquet,Apache Spark,Gzip,Parquet,当我在互联网上搜索和阅读关于这个问题的答案时,会收到令人困惑的信息。有人可以分享他们的经验吗?我知道GZIP压缩的csv不是,但也许拼花地板的文件内部结构与csv完全不同?具有GZIP压缩的拼花地板文件实际上是可拆分的。这是因为拼花文件的内部布局。这些始终是可拆分的,与使用的压缩算法无关 这主要是由于拼花地板文件的设计分为以下几个部分: 每个拼花地板文件由多个行组组成,这些行组的大小应与HDFS块的大小相同 每个行组由每列一个列块组成。行组中的每个列块具有相同的行数 ColumnChunk被拆分

当我在互联网上搜索和阅读关于这个问题的答案时,会收到令人困惑的信息。有人可以分享他们的经验吗?我知道GZIP压缩的csv不是,但也许拼花地板的文件内部结构与csv完全不同?

具有GZIP压缩的拼花地板文件实际上是可拆分的。这是因为拼花文件的内部布局。这些始终是可拆分的,与使用的压缩算法无关

这主要是由于拼花地板文件的设计分为以下几个部分:

  • 每个拼花地板文件由多个行组组成,这些行组的大小应与HDFS块的大小相同
  • 每个行组由每列一个列块组成。行组中的每个列块具有相同的行数
  • ColumnChunk被拆分为页面,这些页面的大小可能在64KiB到16MiB之间压缩是在每页的基础上进行的,因此页面是作业可以处理的最低级别的并行化

  • 您可以在这里找到更详细的解释:

    谢谢您的回答。我只是想确认一下。从技术上讲,这些将是.gz.parquet文件,而不是parquet.gz文件,对吗?它只是像Microsoft Polybase这样的产品在以拼花格式从外部导出数据时生成.gz文件,我还没有验证它是由自身压缩的文件还是内部的文件块。是的,它们应该是
    gz.parquet
    。压缩应在实木地板内部进行。如果您有一个工具,首先生成拼花,然后在其上运行GZIP,那么这些实际上是无效的拼花文件。对于拼花地板,格式的某些部分(例如页眉)必须不压缩。这些部件很小(通常在一到两KiB左右),但压缩它们会导致显著的性能损失。