文件格式

关于 Parquet 文件格式的文档。

应该将本文件与 thrift 定义一起阅读以理解该格式。

    4 字节魔数 "PAR1"
    <列 1 块 1>
    <列 2 块 1>
    ...
    <列 N 块 1>
    <列 1 块 2>
    <列 2 块 2>
    ...
    <列 N 块 2>
    ...
    <列 1 块 M>
    <列 2 块 M>
    ...
    <列 N 块 M>
    文件元数据
    4 字节文件元数据长度(小端序)
    4 字节魔数 "PAR1"

在上面的例子中,该表有 N 列,分成 M 个行组。文件元数据包含所有列块起始位置的位置信息。有关元数据中包含的更多详细信息,请参阅 Thrift 定义。

文件元数据在数据之后写入,以便支持单次写入。

读取器应该首先读取文件元数据以找到它们感兴趣的所有列块。然后应该按顺序读取列块。

该格式明确设计为将元数据与数据分离。这允许将列拆分到多个文件中,以及让单个元数据文件引用多个 parquet 文件。

文件布局