pandasとSQLとPolarsとPySpark
目的が大きく異なるので使い分けるのが良い。組み合わせて使うのが良いだろう
Pandas
ユーザガイドから分かるようにPandasはデータ加工用のプログラム
メモリに載せて使うもの
最近Pandasでもパイプラインの記法(メソッドチェーン)ができるようになったぽい
PyTorchやPandas高速化の工夫
PythonOsakaの資料
Kaggleで戦いたい人のためのpandas実戦入門 - blog
SQL
データ保存と検索用のプログラム
複数のクライアント(数十から数百以上)から非同期にリクエストを受けて検索集計して結果を返すときに必要
Pandasの代替ライブラリ
2023年になり、Pandasの代替ライブラリも多く出ている。そのいくつかについて紹介する
結論として、Pandasの代わりとしてはPolarsが優秀
Polars
超高速…だけじゃない!Pandasに代えてPolarsを使いたい理由 - Qiita
pandasから移行する人向け polars使用ガイド - Qiita
複雑な集計処理を行いやすい
PySpark
pandasには無い分散処理を行うエンジン。
データ取り込みパイプライン等で使うことが想定されている
SQLクエリをサポート
以下のとき、PandasよりPySparkの方が優れています
データが膨大かつ毎年増加し続けており、処理時間を改善したい。
ANSI SQL互換性
機械学習の機能が必要
データをストリーミングし、リアルタイムで処理したい。
Pandas vs Polars
Polarsの方が高速で、メモリ効率が良く、柔軟なAPIを持っている
Pandasの方が総合的な知見は多い。ただし最終的に.valuesでnumpy配列に変換される運命なので敢えて使う意味は薄い?
Pandas vs PySpark
PySparkは大規模なデータを扱える。Pandasはメモリに収まるデータしか扱えませんが、Sparkは複数台のマシンで処理を実行し、メモリに収まらないデータも扱えます。
PySparkの方が高速です。並列化やキャッシュの機能が優秀です。
PySparkは統合された分析環境を提供します。SparkはSQLやMLlibなどのライブラリを備えており、データの取得から加工、分析、機械学習まで一貫して行うことができます。
つまり、めんどくさいということでもあります
PySparkはSparkの設定や管理を必要とし、コードの書き方や実行方法にも注意が必要
Polars vs PySpark
Polarsはシングルマシンで動作し、PySparkは分散処理する
エコシステムが異なります。PySparkはSparkの一部であり、SQLやMLlibなどのライブラリを利用できます。Polarsは独立したライブラリであり、他のPythonやRのライブラリと組み合わせることができます。
複雑さが異なります。PySparkはSparkの設定や管理を必要とし、コードの書き方や実行方法にも注意が必要です。PolarsはPandasと似た使い方ができ、インストールや実行も簡単です。