Parquet:元数据和common_metadata之间的区别

时间:2016-04-20 09:47:43

标签: thrift parquet

在编写元数据文件时,ThriftParquetWriter实际上会生成两个文件: _metadata _common_metadata

https://github.com/apache/parquet-mr/blob/master/parquet-hadoop/src/main/java/org/apache/parquet/hadoop/ParquetFileWriter.java

这两个文件有什么区别?它们具有不同的文件大小,因此必须存在差异

由于

2 个答案:

答案 0 :(得分:3)

https://github.com/apache/parquet-mr/blob/master/parquet-hadoop/src/main/java/org/apache/parquet/hadoop/ParquetFileWriter.java查看源代码时,在我看来:

_common_metadata包含该目录中镶木地板文件的合并模式

_metadata将仅包含该目录中最近编写的镶木地板文件的架构

答案 1 :(得分:0)

情况似乎并非如此。我只在分层集中看到 _common_metadata (其中有编码为目录名称的列)。 _common_metadata 包含整个表的模式,包括那些分层列,而 _metadata 包含用于部分文件的模式(省略分层列),还包括所有文件的每个文件列统计信息(最小值、最大值等),及其完整的相对路径名。