Паркет: разница между метаданными и common_metadata

При записи файла метаданных ThriftParquetWriter фактически создает два файла: _metadata и _common_metadata.

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

В чем разница между этими двумя файлами? У них другой размер файла, поэтому должна быть разница

Спасибо


person user3169506    schedule 20.04.2016    source источник


Ответы (2)


При просмотре исходного кода на https://github.com/apache/parquet-mr/blob/master/parquet-hadoop/src/main/java/org/apache/parquet/hadoop/ParquetFileWriter.java мне кажется, что:

_common_metadata содержит объединенные схемы для файлов паркета в этом каталоге

_metadata будет содержать только схему последнего записанного файла паркета в этом каталоге.

person James Tobin    schedule 13.07.2016

Похоже, что это не так. Я вижу _common_metadata только в иерархических наборах (где есть столбцы, закодированные как имена каталогов). _Common_metadata содержит схему для всей таблицы, включая эти иерархические столбцы, а _metadata содержит схему, используемую для файлов частей (без иерархических столбцов), а также включает статистику столбцов для каждого файла (минимальное, максимальное и т. Д.) Для всех файлов, с их полными относительными именами пути.

person Paul Chambre    schedule 05.02.2021