Skip to main content

Module metadata

Module metadata 

Source
Expand description

Parquet metadata API

Users should use these structures to interact with Parquet metadata.

  • ParquetMetaData: Top level metadata container, read from the Parquet file footer.

  • FileMetaData: File level metadata such as schema, row counts and version.

  • RowGroupMetaData: Metadata for each Row Group with a File, such as location and number of rows, and column chunks.

  • ColumnChunkMetaData: Metadata for each column chunk (primitive leaf) within a Row Group including encoding and compression information, number of values, statistics, etc.

  • PageIndex: Metadata and statistics used to reduce page-level I/O.

Β§APIs for working with Parquet Metadata

The Parquet readers and writers in this crate handle reading and writing metadata into Parquet files. To work with metadata directly, the following APIs are available:

Β§Examples

Please see external_metadata.rs

Re-exportsΒ§

use crate::basic::BoundaryOrder; πŸ”’
use crate::basic::ColumnOrder; πŸ”’
use crate::basic::Compression; πŸ”’
use crate::basic::CompressionCodec; πŸ”’
use crate::basic::Encoding; πŸ”’
use crate::basic::EncodingMask; πŸ”’
use crate::basic::PageType; πŸ”’
use crate::basic::Type; πŸ”’
use crate::encryption::decrypt::FileDecryptor; πŸ”’
use crate::errors::ParquetError; πŸ”’
use crate::errors::Result; πŸ”’
use crate::file::column_crypto_metadata::ColumnCryptoMetaData; πŸ”’
pub(crate) use crate::file::metadata::memory::HeapSize; πŸ”’
use crate::file::metadata::page_index::PageIndex; πŸ”’
use crate::file::metadata::page_index::PageIndexProvider; πŸ”’
use crate::file::metadata::page_index::RowGroupPageIndex; πŸ”’
use crate::file::metadata::thrift::encryption::EncryptionAlgorithm; πŸ”’
use crate::file::page_index::column_index::ByteArrayColumnIndex; πŸ”’
use crate::file::page_index::column_index::PrimitiveColumnIndex; πŸ”’
use crate::file::page_index::column_index::ColumnIndexMetaData; πŸ”’
use crate::file::page_index::offset_index::PageLocation; πŸ”’
use crate::file::statistics::Statistics; πŸ”’
use crate::geospatial::statistics as geo_statistics; πŸ”’
use crate::parquet_thrift::ElementType; πŸ”’
use crate::parquet_thrift::FieldType; πŸ”’
use crate::parquet_thrift::ReadThrift; πŸ”’
use crate::parquet_thrift::ThriftCompactInputProtocol; πŸ”’
use crate::parquet_thrift::ThriftCompactOutputProtocol; πŸ”’
use crate::parquet_thrift::WriteThrift; πŸ”’
use crate::parquet_thrift::WriteThriftField; πŸ”’
use crate::schema::types::ColumnDescPtr; πŸ”’
use crate::schema::types::ColumnDescriptor; πŸ”’
use crate::schema::types::ColumnPath; πŸ”’
use crate::schema::types::SchemaDescPtr; πŸ”’
use crate::schema::types::SchemaDescriptor; πŸ”’
use crate::schema::types::Type as SchemaType; πŸ”’
use crate::data_type::private::ParquetValueType; πŸ”’
use crate::file::page_index::offset_index::OffsetIndexMetaData; πŸ”’
pub use footer_tail::FooterTail;
pub use options::ParquetMetaDataOptions;
pub use options::ParquetStatisticsPolicy;
pub use push_decoder::ParquetMetaDataPushDecoder;
pub use reader::ColumnChunkMask;
pub use reader::PageIndexPolicy;
pub use reader::ParquetMetaDataReader;
use std::io::Write; πŸ”’
use std::ops::Range; πŸ”’
use std::sync::Arc; πŸ”’
pub use writer::ParquetMetaDataWriter;
pub(crate) use writer::ThriftMetadataWriter; πŸ”’

ModulesΒ§

dictionary πŸ”’
Decoding a column chunk’s dictionary page directly into an Arrow array, independent of the row-by-row ArrayReader machinery.
footer_tail πŸ”’
memory πŸ”’
Memory calculations for ParquetMetadata::memory_size
options πŸ”’
Options used to control metadata parsing
page_index
Page Index structures for efficient page-level skipping
parser πŸ”’
Internal metadata parsing routines
push_decoder πŸ”’
reader πŸ”’
thrift πŸ”’
This module is the bridge between a Parquet file’s thrift encoded metadata and this crate’s Parquet metadata API. It contains objects and functions used to serialize/deserialize metadata objects into/from the Thrift compact protocol format as defined by the Parquet specification.
writer πŸ”’

StructsΒ§

ColumnChunkMetaData
Metadata for a column chunk.
ColumnChunkMetaDataBuilder
Builder for ColumnChunkMetaData
ColumnIndexBuilder
Builder for Parquet ColumnIndex, part of the Parquet PageIndex
FileMetaData
File level metadata for a Parquet file.
KeyValue
A key-value pair for FileMetaData.
LevelHistogram
Histograms for repetition and definition levels.
OffsetIndexBuilder
Builder for offset index, part of the Parquet PageIndex.
PageEncodingStats
PageEncodingStats for a column chunk and data page.
ParquetMetaData
Parsed metadata for a single Parquet file
ParquetMetaDataBuilder
A builder for creating / manipulating ParquetMetaData
RowGroupMetaData
Metadata for a row group
RowGroupMetaDataBuilder
Builder for row group metadata.
SortingColumn
Sort order within a RowGroup of a leaf column

EnumsΒ§

ParquetPageEncodingStats πŸ”’
Internal representation of the page encoding stats in the ColumnChunkMetaData. This is not publicly exposed, with different getters defined for each variant.
RowGroups πŸ”’

Type AliasesΒ§

FileMetaDataPtr
Reference counted pointer for FileMetaData.
RowGroupMetaDataPtr
Reference counted pointer for RowGroupMetaData.