トップ / ウィンドウ関数

lead

パーティション内で、1つ後(未来)の行の値を取得します。

SNOWPARK 静的検証のみ

lead(col("salary"), 1).over(window_spec)

POLARS 実行確認済み

ldf.sort(["department", "employee"]).with_columns(pl.col("salary").shift(-1).over("department").alias("next_salary"))

挙動・設計の違い

SnowparkはSQLのLEAD()関数に変換されます。Polarsはshiftに負の数(-1)を渡すことで「前方向」でなく「後方向」にずらします。実行して確認したところ、各パーティションの末尾行は「1つ後が無い」ため両APIともNULL/nullになります。

移行時の落とし穴

lagとleadはSnowpark側では別々の関数名ですが、Polars側では同じshiftメソッドの符号(正か負か)だけの違いになります。符号を書き間違えるとlagのつもりがleadの結果になる(またはその逆)ので注意が必要です。

ウィンドウ関数の他のメソッド

出典・検証情報

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