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

contains

文字列に指定した部分文字列が含まれているかを判定する。

SNOWPARK 静的検証のみ

contains(col("url"), lit("3.0"))

POLARS 実行確認済み

pl.col("url").str.contains("3.0", literal=True)

挙動・設計の違い

SnowparkはSQLのCONTAINS(col, substr)に変換され、常にリテラル(そのままの文字列)検索。一方Polarsのstr.contains()既定で正規表現として解釈するという違いがある。

移行時の落とし穴

検索文字列に.(などの正規表現記号が含まれると、Polars側だけ意図しないマッチが起きる。実行して確認したところ、"v3.0 release"3.0を探すと、Snowparkのcontains相当(リテラル)は"v3X0 release"にはマッチしないが、Polarsのstr.contains("3.0").を「任意の1文字」として解釈するため"v3X0"にもマッチしてしまう。Snowparkのcontainsをそのまま移植するなら、Polars側はliteral=Trueを明示する必要がある。

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

出典・検証情報

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