Polars 2.0のプレリリース候補が公開
原題: Pre-Release of Polars 2.0
なぜ重要か
PythonデータエコシステムにおけるPolarsの採用が拡大する中、デフォルトのストリーミング化はPandasからの移行ユーザーや大規模データ処理ユーザーに直接的な性能向上をもたらす重要な節目となる。
Rustおよび Python向けの高速データフレームライブラリ「Polars」の開発チームは2026年9月2日、Polars 2.0の最初のリリース候補(RC)を公開した。正式版は数週間以内にリリース予定。最大の変更点はLazyFrameクエリのデフォルトエンジンがストリーミングエンジンに切り替わる点で、メモリ使用量と処理速度が最大5倍改善されると見込む。
Polars開発チームのRitchie Vinkは2026年9月2日、Polars 2.0の最初のリリース候補(RC)を公式ブログで発表した。正式版の2.0は数週間以内のリリースを予定している。
今回のメジャーバージョンアップの主な目的は、過去の設計上の判断を廃止すること、およびデフォルト設定をより合理的な値に変更することであり、大規模な新機能追加は意図していない。開発チームは「ユーザーにとって退屈な体験であることを望む」と表現している。
最大の変更点は「ストリーミングエンジンのデフォルト化」だ。これまでLazyFrameの`collect`呼び出しはインメモリエンジンを使用していたが、2.0からはデフォルトでストリーミングエンジンが使われる。開発チームは、集計ベースでストリーミングエンジンがインメモリエンジンと比較して最大5倍高速になると予測しており、メモリ消費量の大幅な削減も見込んでいる。
ただし、ストリーミングエンジンは`join`・`group_by`・`unpivot`などの操作において行の順序を保証しない。行順序を維持する必要があるユーザーは`maintain_order=True`を指定するか、プロセス全体またはクエリ単位でインメモリエンジンを選択できる設定(`pl.Config.set_engine_affinity("in-memory")`または`collect(engine="in-memory")`)が用意されている。
次に「より厳格な動作」への変更も行われた。データ型の不一致時に暗黙的な変換を行う挙動を廃止し、エラーを早期に検出するよう改善された。具体例として`is_in`式の型変換が挙げられており、これまで異なるデータ型を共通のスーパー型へ暗黙的にキャストしていた(場合によっては精度損失が発生する変換も含む)が、2.0ではより厳格に扱われる。
開発チームはAI駆動開発の普及を背景として、エージェントがデータを実体化せずに`collect_schema()`でクエリのスキーマ整合性を早期検証できる点にも言及している。2.0への移行を支援するための移行ガイドも公式サイトに公開されている。