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:
ParquetMetaDataReaderfor reading metadata from an I/O source (sync and async)ParquetMetaDataPushDecoderfor decoding from bytes without I/OParquetMetaDataWriterfor writing.
Β§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 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
ArrayReadermachinery. - 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Β§
- Column
Chunk Meta Data - Metadata for a column chunk.
- Column
Chunk Meta Data Builder - Builder for
ColumnChunkMetaData - Column
Index Builder - Builder for Parquet
ColumnIndex, part of the Parquet PageIndex - File
Meta Data - File level metadata for a Parquet file.
- KeyValue
- A key-value pair for
FileMetaData. - Level
Histogram - Histograms for repetition and definition levels.
- Offset
Index Builder - Builder for offset index, part of the Parquet PageIndex.
- Page
Encoding Stats - PageEncodingStats for a column chunk and data page.
- Parquet
Meta Data - Parsed metadata for a single Parquet file
- Parquet
Meta Data Builder - A builder for creating / manipulating
ParquetMetaData - RowGroup
Meta Data - Metadata for a row group
- RowGroup
Meta Data Builder - Builder for row group metadata.
- Sorting
Column - Sort order within a RowGroup of a leaf column
EnumsΒ§
- Parquet
Page πEncoding Stats - 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Β§
- File
Meta Data Ptr - Reference counted pointer for
FileMetaData. - RowGroup
Meta Data Ptr - Reference counted pointer for
RowGroupMetaData.