【发布时间】:2020-09-25 03:21:50
【问题描述】:
我正在学习 Parquet File 的内部表示,所以我通过 Apache Parquet 的 Github page、Google Dremel 的 paper 了解定义和重复级别以及 Twitter 的 blog 了解有关 Parquet 文件的更多信息。
为了将我通过阅读获得的对其表示的理解与实际 Parquet 文件表示联系起来,我使用 parquet-tools 命令和 meta 选项作为示例 Parquet 文件之一,它打印了包含 3 个主要部分的详细信息,标头、文件架构和 Row_groups。我理解了前 2 部分中提供的详细信息,但我无法完全理解行组部分中的所有详细信息。
以下是我的问题。
- 想了解更多关于
DO、FPO、VC(这看起来像是当前行组中所有行的计数)的信息。可以在 parquet-tools Github page 中找到它所代表的扩展,但我想了解更多关于它的详细信息。我知道SZ和ST是什么。 - 在
ENC旁边,我看到了BIT_PACKED、PLAIN、RLE等编码方案列表。我单独理解它的含义,但我不明白为什么一直使用至少 3 种编码方案。 - 在行组的记录计数
RC和总大小TS旁边,我看到OFFSET。对于第一页,它总是 4。它是如何计算的? - 我知道Parquet文件的页眉和页脚有4位魔术码“PAR1”,有什么特殊含义吗?或者只是一些任意文本来确定文件是否为 Parquet(不取决于文件扩展名)。
很遗憾,由于安全限制,我无法附加 parquet-tools meta 命令输出的 sn-p,但我希望在每个问题中可视化我的意思不会太多。
【问题讨论】:
标签: apache-spark parquet dremel