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