Skip to content
Opensource internals
  • Posts

Parquet

DataFusion's Parquet Access Plan: How Row Groups, Pages and Files Get Skipped Before a Byte Is Read

Oct 21, 2026 9 min read Jay Hubbert

DataFusion never reads a Parquet file row group by row group and hopes for the best: it builds an access plan, proves which row groups cannot match using footer statistics, the …

DatafusionParquetPerformanceInternals

Read more →

DataFusion's Parquet Push Decoder: Pruning Row Groups in the Middle of a Scan You Already Started

Oct 21, 2026 9 min read Jay Hubbert

DataFusion’s push decoder interleaves byte-range fetches with decoding and re-checks a dynamic filter at every row-group boundary, so a filter that tightens mid-scan still prunes …

DatafusionParquetDynamic filtersPerformanceInternals

Read more →

Polars Pushes Predicates Into the Parquet Scanner

Oct 21, 2026 13 min read Jay Hubbert

The filter is not a special case in the Parquet reader. Polars compiles the same expression tree a second time into a predicate over a synthetic frame of col_min / col_max / col_nc …

PolarsInternalsOptimizerParquetPerformance

Read more →

Late Materialization in DataFusion's Parquet Reader: Decode the Filter Columns First, Then the Rest

Oct 21, 2026 9 min read Jay Hubbert

DataFusion pushes row filters into the Parquet decoder itself: the filter’s columns are decoded first, the surviving rows are known before the wide columns are touched, and …

DatafusionParquetPerformanceInternals

Read more →

← Newer Page 2 of 2 Older →

© 2026 Jay Hubbert · Built with Hugo 0.168.0

RSS ·