「Pandasのスケーリング入門」
Pandas Scaling Introduction
編集者注:Doris Leeは、この10月30日から11月2日まで開催されるODSC Westの講演者です。彼女のトーク「コードの一行を変更するだけでデータサイエンスワークフローをスケーリングする」をぜひチェックしてください!
pandasは現在最も人気のあるデータサイエンスライブラリの一つです。最近のStackOverflowの調査によると、開発者の4人に1人が使用しています。また、ほとんどの導入データサイエンスコースやブートキャンプで教えられるデファクトのデータサイエンスライブラリでもあります。
pandasは、小規模なデータセットでのクイックなプロトタイピングには非常に優れていますが、大規模なデータセットを扱う際にはしばしば問題が発生します。
- 「MLパイプラインアーキテクチャのデザインパターン(10の実世界の例を使用)」
- 「トランスフォーマーと位置埋め込み:マスタリーのためのステップバイステップのNLPチュートリアル」
- 「5つの最高のオープンソースLLM」
なぜPandas ≠ スケール 🤦
これは、pandasのいくつかの基本的な設計上の決定に起因しています。Pandasはインメモリデータ構造であり、つまり作業中のデータをメモリに収める必要があります。その結果、中程度のサイズのデータセットでもメモリ不足のエラーが簡単に発生することがあります。
Modinの紹介:一行のコードを変更するだけでpandasをスケーリングする
これらの問題に対処するために、私たちはModinを開発しました。これは、pandasのスケーラブルな置き換えです。Modinは、データフレームの基礎となる抽象化であるデータフレームについての最先端の学術研究を活用し、データベースと分散システムの最良の部分をデータフレームにもたらします。Modinを使用するには、次のようにインポートステートメントを置き換えるだけです:
#import pandas as pd
import modin.pandas as pd
df = pd.read_csv("bigdata.csv")
インポートステートメントを変更したら、pandasと同様にModinを使用する準備が整いました!パンダスのコードを変更することなく、ノートパソコンで4倍の高速化を簡単に実現できます!
データウェアハウスでスケールのあるpandasを実行する 🚀
ほとんどのエンタープライズデータチームは、Snowflake、BigQuery、DuckDBなどのデータベースやデータウェアハウスにデータを保存しています。しかし、pandasでそのデータを扱おうとすると、データセットを自分のマシンのメモリに取り込む必要があるため、遅くなったり、費用がかかったり、致命的なメモリ不足の問題が発生することがあります。
Ponderは、あなたのpandasコードをデータウェアハウスが理解できるSQLに変換することで、この問題を解決します。その結果、お気に入りのpandas APIを使用できますが、データパイプラインは最も堅牢で最適化されたデータインフラストラクチャの一つであるデータベース上で実行されます。
以下は、簡単に始める方法です:
import modin.pandas as pd
import ponder
ponder.init()
次に、データベース接続を設定します。Ponderは現在、Snowflake、BigQuery、DuckDBをサポートしています:
#SnowflakeのPythonコネクタを使用
import snowflake.connector
db_con = snowflake.connector.connect(user=**, password=**, account=**, role=**, database=**, schema=**, warehouse=**)
Ponderでは、read_sqlは単にデータウェアハウスのテーブルに接続を確立します。データはデータウェアハウスに保持され、実行されるすべての後続のpandasコマンドはデータウェアハウスでSQLクエリとして実行されます。
df = pd.read_sql("DB_TABLE",db_con) #注意:データはメモリに読み込まれません!
# pandasで操作を実行 - すべてがSnowflake上で実行されます!
df.describe() # 概要統計の計算
データベース内ですべてを直接実行することで、データウェアハウスのスケーラビリティを継承します。Ponderを使用すると、1テラバイト以上のデータでpandasを実行できます。SnowflakeとBigQuery上で150M行のデータを扱う際に、2時間以上の開発時間を節約できることを示しました。
Pythonのデータワークフローをデータウェアハウスで実行するために、今すぐここでサインアップしてください!始める方法については、クイックスタートガイドをご覧ください。
著者について:
Doris LeeはPonderのCEO兼共同創設者です。Dorisは2021年にUCバークレーのRISE Labと情報学部で博士号を取得し、データサイエンティストがデータを探索し理解するのを支援するツールを開発しました。彼女は2023年のForbes 30歳未満エンタープライズテクノロジー部門の受賞者です。
We will continue to update VoAGI; if you have any questions or suggestions, please contact us!
Was this article helpful?
93 out of 132 found this helpful
Related articles