Skip to content
Opensource internals
  • Posts

Polars

Polars Parses CSV With Portable SIMD and simdutf8

Oct 21, 2026 13 min read Jay Hubbert

Polars’ CSV reader scans 64 bytes at a time with portable SIMD, uses a carry-less multiply to compute quote parity, and hands each field to a per-dtype parse_bytes; strings are …

PolarsInternalsSimdPerformanceStrings

Read more →

Polars Prunes Parquet Row Groups With Chunk Statistics, Not the Page Index

Oct 21, 2026 12 min read Jay Hubbert

Polars prunes Parquet row groups with the per-column-chunk statistics in the footer: it materialises them as a DataFrame of col_min/col_max/col_nc columns, runs the predicate on …

PolarsInternalsParquetPerformanceStreaming

Read more →

Polars Does Interval Joins with a Sort and a Sweep

Oct 21, 2026 15 min read Jay Hubbert

The interval join follows Khayyat et al.’s inequality-join algorithm: two sorts produce an L1 order (by start) and an L2 order (by end), and a sweep over the L2 order marks …

PolarsInternalsJoinsPerformanceSorting

Read more →

Polars Joins Two Tables with a Piecewise Merge Join

Oct 21, 2026 12 min read Jay Hubbert

The merge join kernel walks a sorted build side and a sorted probe side with two cursors, comparing keys and emitting pairs. The streaming engine cuts the two inputs into pieces …

PolarsInternalsJoinsPerformanceStreaming

Read more →

Polars Encodes Group Keys as Rows to Make Hashing Cheap

Oct 21, 2026 13 min read Jay Hubbert

The row encoder writes each key column into a self-describing byte layout: a sentinel for null, big-endian bytes with the sign bit flipped for numbers, a terminator for strings. …

PolarsInternalsGroup byPerformanceArrow

Read more →

← Newer Page 3 of 7 Older →

© 2026 Jay Hubbert · Built with Hugo 0.168.0

RSS ·