Parquet page checksum
A Parquet page checksum is an optional CRC32 value used to detect changes in the serialized page body, excluding its page header.
Scope: the checksum covers page bytes as stored, not the page header; it is not a whole-file or footer integrity certificate. [1]
Version-specific controls: PyArrow 21.0 defaults both write_page_checksum and page_checksum_verification to false. The reader checks an eligible page only if verification is enabled and the CRC field is present. [2] [3] [4]
Interpretation: enabling verification does not require every page to carry a checksum, nor does reading selected columns validate every column. Writer policy, reader policy and read coverage must be recorded separately. [4] [2]
Selection metadata: a page CRC does not validate footer statistics used for row-group pruning. In Hesela's controlled PyArrow 21.0.0 example, narrowing the stored minimum excluded a real matching row while a full CRC-enabled scan returned every original value; a separate statistics-versus-values audit detected the inconsistency. This deliberately invalid footer is not a field-error rate estimate or a claim about every reader. [7] [8]
Relations
- related
- parquet, checksum, backup-verification, zone-map, parquet-row-group, parquet-column-chunk
Citations
- Apache Parquet: page checksumming
- Apache Arrow 21.0: read_table checksum verification and column selection
- Apache Arrow 21.0: write_table page checksum option
- Apache Arrow 21.0.0: SerializedPageReader checksum presence guard
- Apache Arrow 21.0.0: row-group filtering from statistics expressions
- Hesela: controlled Parquet footer statistics and pruning observations
Further reading
Published by Hesela team · Updated
Report a correction · Editorial standards · Reuse guidance
Cite this page
Hesela team. Parquet page checksum. Hesela. 2026-10-17. https://hesela.dev/terms/parquet-page-checksum/