「Pandasのスケーリング入門」

Pandas Scaling Introduction

編集者注:Doris Leeは、この10月30日から11月2日まで開催されるODSC Westの講演者です。彼女のトーク「コードの一行を変更するだけでデータサイエンスワークフローをスケーリングする」をぜひチェックしてください!

pandasは現在最も人気のあるデータサイエンスライブラリの一つです。最近のStackOverflowの調査によると、開発者の4人に1人が使用しています。また、ほとんどの導入データサイエンスコースやブートキャンプで教えられるデファクトのデータサイエンスライブラリでもあります。

pandasは、小規模なデータセットでのクイックなプロトタイピングには非常に優れていますが、大規模なデータセットを扱う際にはしばしば問題が発生します。

なぜ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!

Share:

Was this article helpful?

93 out of 132 found this helpful

Discover more

データサイエンス

「Seerの最高データオフィサーであるDr. Serafim Batzoglouによるインタビューシリーズ」

セラフィム・バツォグルはSeerのチーフデータオフィサーですSeerに加わる前は、セラフィムはInsitroのチーフデータオフィサー...

データサイエンス

「3つの質問:ロボットの認識とマッピングの研磨」

MIT LIDSのLuca CarloneさんとJonathan Howさんは、将来のロボットが環境をどのように知覚し、相互作用するかについて議論し...

人工知能

「スノーケルAIのCEO兼共同創設者、アレックス・ラットナー - インタビューシリーズ」

アレックス・ラトナーは、スタンフォードAIラボを母体とする会社、Snorkel AIのCEO兼共同創設者ですSnorkel AIは、手作業のAI...

AIテクノロジー

アンソニー・グーネティレケ氏は、Amdocsのグループ社長であり、テクノロジー部門および戦略部門の責任者です- インタビューシリーズ

アンソニー・グーネティレーケは、Amdocsでグループ社長、テクノロジーと戦略担当です彼と企業戦略チームは、会社の戦略を策...

AIテクノロジー

「LXTのテクノロジーバイスプレジデント、アムル・ヌール・エルディン - インタビューシリーズ」

アムル・ヌール・エルディンは、LXTのテクノロジー担当副社長ですアムルは、自動音声認識(ASR)の文脈での音声/音響処理と機...

人工知能

「UVeyeの共同設立者兼CEO、アミール・ヘヴェルについてのインタビューシリーズ」

アミール・ヘヴァーは、UVeyeのCEO兼共同創設者であり、高速かつ正確な異常検出により、自動車およびセキュリティ産業に直面...