DEVOURED
Announcing Polars 1.41
Polars 1.41 boosts performance for wide Parquet tables by up to 3.29x and deepens query optimization with nested common subplan elimination.
What: Polars 1.41, released by Thijs Nieuwdorp on May 26, 2026, significantly speeds up Parquet footer decoding, showing a 3.29x improvement for 10,000 columns (from 117.4 ms to 35.74 ms). It also enhances the query optimizer for `LazyFrame` by deduplicating common subplans across all nesting depths and introduces `LazyFrame.gather()` for integer-based row selection.
Why it matters: This update signals Polars' ongoing commitment to high performance and sophisticated query optimization, positioning it as a strong contender against other data manipulation libraries, especially for complex analytical tasks and large datasets.
Takeaway: If you use Polars, upgrade to 1.41 to automatically benefit from faster Parquet scans and more efficient lazy query execution, particularly for wide tables or complex nested operations.
Deep dive
- Polars 1.41, released on May 26, 2026, focuses on performance and query optimization for data analysis.
- Parquet metadata decoding is significantly faster, achieving up to 3.29x speedup for tables with 10,000 columns (from 117.4 ms to 35.74 ms).
- This speedup is due to replacing a generic, auto-generated Thrift decoder with a hand-written, specialized decoder for Parquet's stable metadata schema.
- The query optimizer now performs common subplan elimination at every nesting depth, preventing redundant computations in complex
LazyFramequeries. - Previously, subplans shared at higher levels in the query plan might still be re-evaluated; this is now fixed by traversing into cache nodes.
LazyFrame.gather()has been introduced, allowing row selection by integer index without first materializing theLazyFrameinto aDataFrame.- These improvements are automatic for existing
scan_parquetcalls andLazyFrameoperations.
Decoder
- Polars: A high-performance DataFrame library for Rust and Python, designed for speed and efficiency on large datasets.
- Parquet: A columnar storage file format optimized for analytics, often used with big data processing frameworks.
- Thrift: A lightweight, language-independent software stack for point-to-point RPC, used by Parquet to describe its metadata.
- LazyFrame: A Polars data structure that represents a sequence of operations to be performed later, enabling query optimization.
- Common subplan elimination: A compiler optimization technique where repeated computations of identical sub-expressions are identified and replaced with a single computation, whose result is then reused.
Original article
Full article content is not available for inline reading.
Explore all 61 articles in today's digest
Fresh dev news, AI-digested daily. Never miss a trend at devoured.fyi