BigData / Apache Parquet Interview Questions
What is predicate pushdown in Parquet and how does it work end-to-end?
Predicate pushdown is the process of evaluating filter conditions as early as possible — before data reaches the compute layer — using metadata stored inside Parquet files.
End-to-end flow for WHERE amount > 1000:
- Reader fetches the Parquet footer and reads per-row-group statistics:
min_amount,max_amount. - For each row group, if
max_amount ≤ 1000, the entire row group is skipped — no decompression, no I/O. - For surviving row groups, the
amountcolumn chunk is decompressed and values are evaluated against> 1000at the page level (with page-level indexes in Parquet 2.x). - Only matching rows are returned to the engine.
Parquet 2.0 introduced column indexes (min/max per page, not just per row group), enabling finer-grained skipping within a row group.
Combined with partition pruning (directory skipping) and Bloom filters (equality skipping), predicate pushdown is the single most important performance feature of the Parquet format.
More Related questions...