トップ / フィルタ・サンプリング
条件に合う行だけを残す。whereはfilterの別名で、書き方はどちらも同じ。
df.filter(col("age") >= 21)
df.where(col("status") == "active") # filterの別名
ldf.filter(pl.col("age") >= 21)
SnowparkはSQLのWHERE句を生成し、複数回のfilter呼び出しはAND条件として自動的に結合される。Polarsも述語プッシュダウンにより、データを読み込む段階で不要な行をスキップしようとする。どちらも「絞り込みをできるだけ早い段階に押し下げる」という最適化方針は共通している。
SQLの3値論理(TRUE/FALSE/UNKNOWN)にもとづき、Snowparkでは条件式がNULLと評価された行はfilterの結果から除外される。Polarsも既定でnull行は条件を満たさない扱いになるが、否定条件(〜でない、を意味する式)を書いたときに「NULLを含めたいのか除外したいのか」を明示しないと、両者で結果がずれることがある。
Polars 1.43.2 で実行確認 / Snowpark Python SDK 1.54.0 で静的検証(2026-08-21)