Parquet / Writer choices
Same records. Different work.
These eight real files contain the same 4,096 synthetic records. Sorting changes which values share a page. Page size, row-group size, dictionary encoding and compression change the physical layout.
PyArrow 25.0.1 wrote and read back every file. Sorting each readback by its unique id reproduces the same complete table, including nulls, Unicode text and integers above JavaScript’s safe number range.
Inspect the original files.
All variants request a 256-byte data-page target. Writers check that target at batch boundaries, so it is not an exact page size. Relative to sorted-small, sorted-large changes only the row-group size; wide-pages changes only the write batch; dictionary-v1 changes only dictionary use; snappy-v1 changes only compression. The combined dictionary-v2 case also exercises V2 pages. All files include page CRC32 checksums, which the browser reader verifies when fetching a page.
Inspect sizes, settings and SHA-256 hashes · Read the Parquet page-index specification