トップ / 式評価・文字列・型変換

lpad / rpad

文字列の左側・右側を指定した文字で埋め、一定の長さに揃える。

SNOWPARK 静的検証のみ

lpad(col("code"), 10, lit("0"))
rpad(col("code"), 10, lit("*"))

POLARS 実行確認済み

pl.col("code").str.pad_start(10, "0")
pl.col("code").str.pad_end(10, "*")

挙動・設計の違い

どちらも「対象の長さになるまで指定した文字で埋める」という同じ目的の関数で、名前の対応も分かりやすい(lpadpad_startrpadpad_end)。指定長より短い文字列を実行して確認したところ、結果は一致する。

移行時の落とし穴

対象の文字列が既に指定長より長い場合の挙動が違う。Snowflake公式ドキュメントは「baseがlength_exprより長い場合、length_exprの長さまで切り詰められる」と明記しており、実際"Twelve Dollars"を10文字でlpadすると"Twelve Dol"に切り詰められる。一方、実行して確認したところPolarsのstr.pad_start/str.pad_end指定長より長い文字列を切り詰めず、元の文字列のまま返す"Twelve Dollars"は10指定でもそのまま14文字で返る)。固定長カラムの生成など長さの上限を保証したい処理をそのまま移植すると、Polars側だけ長さが揃わない。

式評価・文字列・型変換の他のメソッド

出典・検証情報

Polars 1.36.1 で実行確認 / Snowpark Python SDK 1.51.1 で静的検証(2026-08-29)