トップ / 実行・アクション・IO

collect

それまで積み上げた変換を実際に評価し、結果を手元に取得する。最も基本的なアクション。

SNOWPARK 静的検証のみ

df.collect()  # Rowオブジェクトのリストを返す

POLARS 実行確認済み

ldf.collect()  # Polars DataFrameを返す

挙動・設計の違い

Snowparkのcollect()はSnowflakeのウェアハウスに最適化されたSQLを送信・実行し、結果をネットワーク経由で受け取ってRowオブジェクトのリストにする。Polarsのcollect()はRustの実行エンジンをその場で起動し、結果をメモリ上のPolars DataFrameとして保持する。呼び出す場所(クラウドかローカルか)が違うだけで、「それまでの変換をここで初めて評価する」という役割は同じ。

移行時の落とし穴

巨大なデータセットに対して不用意にcollect()を呼ぶと、結果を全てクライアント側のメモリに載せようとしてメモリ不足(OOM)でプロセスが落ちるリスクは、SnowparkでもPolarsでも共通して存在する。件数を絞ってからcollect()する、あるいは後述のto_local_iteratorのようなストリーミング手段を検討する。

実行・アクション・IOの他のメソッド

出典・検証情報

Polars 1.43.2 で実行確認 / Snowpark Python SDK 1.54.0 で静的検証(2026-08-26)