トップ / 式評価・文字列・型変換
文字列の左側・右側を指定した文字で埋め、一定の長さに揃える。
lpad(col("code"), 10, lit("0"))
rpad(col("code"), 10, lit("*"))
pl.col("code").str.pad_start(10, "0")
pl.col("code").str.pad_end(10, "*")
どちらも「対象の長さになるまで指定した文字で埋める」という同じ目的の関数で、名前の対応も分かりやすい(lpad↔pad_start、rpad↔pad_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)