トップ / 式評価・文字列・型変換
文字列に指定した部分文字列が含まれているかを判定する。
contains(col("url"), lit("3.0"))
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)