Polars 2.0 リリース候補版公開:ストリーミングエンジンがデフォルトに、最大5倍高速化へ
Pre-Release of Polars 2.0

Polars 2.0 の最初のリリース候補版が公開された。今回のメジャーバージョンアップは新機能の追加ではなく、過去の設計判断の見直しとデフォルト設定の変更に焦点を当てている。最大の変更点は、すべての LazyFrame クエリでストリーミングエンジンがデフォルトになることだ。これにより、メモリ使用量とパフォーマンスが大幅に改善され、総合的に最大5倍の高速化が期待される。また、データ型不一致や暗黙の型変換に対する厳格化も進められ、エラーメッセージもより情報量が増えた。移行ガイドも用意されている。
私たちは Polars 2.0 が退屈なリリースになることを望んでいます。
HNでの議論
118- benrutter
> 私たちはPolars 2.0を大きな機能リリースにするつもりはありません。実際、皆さんにとって退屈な体験になることを願っています。メジャーバージョンを上げる理由は、現在私たちを妨げている過去の設計判断を取り除き、より多くのユーザーに利益をもたらす、より賢明な設定にデフォルトを変更したいからです。
この意見で私が非常に退屈な人間だと思われるかもしれませんが、プロジェクトがセマンティックバージョニングをこのように真剣に受け止めているのを見るのは大好きです!バージョンアップは、新しい派手な機能ではなく、古いクソを削除することに焦点を当てるべきです。
私はしばらくpolarsを使ってきましたが、彼らの安定性への焦点は、最初に乗り換えを決意した大きな理由でした!
- perrygeo
私にとって、polarsのスーパーパワーは本番環境での安定性です。
pandasはすべての問題をランタイムに押し付けがちで、さまざまな隠れたヒューリスティックがあります。特に列タイプや欠損値に関してです。すべてのエッジケースをテストしたかどうかを知るのは非常に難しいです。コードをテストする唯一の方法は、データのすべてのバリエーションを投げつけることです。ノートブックに座っていて、代わりにデータを検証して「クリーンアップ」する忍耐力があればそれでいいですが、データパイプラインがint列を期待していたのにfloatが来て失敗したために午前3時に呼び出されるのは、そうでもありません。
Polarsはデフォルトでより厳格で、プランナーを通じてコストを前倒しします。結果として得られるアプリは、本番環境で著しく安定します。コードをテストすれば、実際のデータで動作するという合理的な保証が得られます。
私はAPIの使いやすさや構文にはあまり興味がありません。どちらも問題ありません。重要なのは、ランタイムでデータの変動にどう対処するかです。バリアントで壊れない一般的なコードを書けますか?pandasでは無理です。polarsなら絶対にできます!
おまけ:polarsにはRust APIもあり、コンパイラがプログラムがすべてのエッジケースを処理することを効果的に証明できます。何年も無人で実行されるRustのpolarsアプリを書くのは一般的です。
- trombonechamp
パフォーマンス以外に、maintain_order=Falseをデフォルトにする理由はありますか?polarsが多くの科学データ分析パイプラインで使用されているからです。非決定的な動作は、科学計算におけるバグの原因としてよく知られています(例:https://pmc.ncbi.nlm.nih.gov/articles/PMC6919963/)。新しいデフォルトでは、コードが正しいかどうかを判断する際に、ユーザーがAPIの実装詳細を頭に入れておく必要があります。科学計算では正しい答えが事前にわからないため、これは厄介で、バグがすり抜けて静かに誤った結果を与える可能性があります。
- bbstats
「代わりに使用:int → categoricalには.cat.to(dtype)、categorical → intには.cat.physical()」に必要なコード例がないのがすごく気になります!
- lmeyerov
ストリーミングや一般的にアウトオブコアへの移行は素晴らしいです。
最近、GFQLにPolarsバックエンドを追加しました(データベース不要のデータフレーム上のCypherグラフクエリ)。CPUとGPUの両モードで、非常に印象的です。pandasやcudfに比べて顕著な改善が見られ、GFQLが大規模データセットだけでなく、低レイテンシなどのカテゴリでも人気システムを打ち負かすことを可能にしました:https://www.graphistry.com/blog/cypher-on-polars-cpu-gpu-gra...
- bobson_dugnutt5
Polarsが大好きです。仕事でpandasをやめてpolarsに切り替えるように、たくさん布教しました。
- Kydlaw
Polarsの活動を見られて嬉しいです。これは、PandasやSQLと比べて優れた人間工学のために、データ処理の頼りになるライブラリでした。
しかし、最近は少し静かで、最近DuckDBをますます調べるようになりました…AWSによるDuckLabの買収まで。
- arn3n
ストリーミングエンジンをデフォルトにする決定は本当に興味深いです。私の直感では、これはバッチ処理でより並列化できる他のデータフレーム操作よりも遅いだろうと思います。なぜなら、ストリーミングエンジンは必然的に行を順番に処理するからです。私の直感は間違っていますか、それともpolarsの自動並列化を過大評価していますか?