Parquet Row-Group Explorer

Predicate pushdown skips row groups using only the footer's min/max stats. Whether that skipping actually helps depends on one thing: was the data sorted on the filtered column before it was written.

Write order

This file has no partitioning at all — one file, 8 row groups, one column: customer_id (integers 0-999). Toggling regenerates each row group's min/max.

File layout: 8 row groups

Red tick marks the filter value on each row group's 0-999 range.

Run a query

Filter customer_id =
0
row groups opened / 8
0%
of the file read
Run a query to see which row groups get skipped.

Partitioning and row-group statistics are different mechanisms

This file has zero partitioning — there is no customer_id=.../ directory anywhere. All pruning shown above comes purely from footer min/max stats on row groups within a single file that was already opened. That is the distinction Parquet Internals makes explicit: partition pruning skips whole files using directory metadata before any file is opened; row-group statistics skip row groups inside a file you already decided to read.