トップ / フィルタ・サンプリング

sample

データの一部をランダムに抽出する。

SNOWPARK 静的検証のみ

df.sample(frac=0.1)  # 10%抽出

POLARS 実行確認済み

df.sample(fraction=0.1)  # DataFrame(Eager)側のメソッド

挙動・設計の違い

SnowparkのsampleはSnowflakeのSAMPLE句に変換され、データベースエンジン側でサンプリングが行われる。Polarsのsampleは全データに対するランダムなインデックス抽出であり、Eager APIのDataFrameに実装されている。

移行時の落とし穴

Polars 1.43.2のLazyFrameクラスにはsampleメソッドが存在しないhasattr(pl.LazyFrame, "sample")Falseと実機で確認済み)。LazyFrameのままsampleしたい場合は.collect()でDataFrameに変換してから.sample()を呼ぶ必要があり、遅延評価のメリットがその時点で失われる点に注意。

フィルタ・サンプリングの他のメソッド

出典・検証情報

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