トップ / 集約・構造変換

listagg

グループ内の複数行の文字列を、区切り文字でつないだ1つの文字列にまとめる。

SNOWPARK 静的検証のみ

df.group_by("dept").agg(listagg("name", ",").alias("names"))

POLARS 実行確認済み

df.group_by("dept").agg(pl.col("name").str.join(",").alias("names"))

挙動・設計の違い

SnowparkのlistaggはSQLのLISTAGGに変換され、区切り文字を第2引数に渡す。Polarsは.str名前空間のjoin()メソッドで同じことを行う。["x","y"],で連結して実行して確認したところ、どちらも"x,y"になる。

移行時の落とし穴

array_agg(配列としてまとめる)とlistagg(文字列としてまとめる)は目的が近く紛らわしい。配列のまま後続処理で使うか、表示用に1本の文字列へ潰すかで使い分ける。Polars側でリスト列ができてから文字列化したい場合は.list.join(",")str名前空間ではなくlist名前空間)を使う点にも注意。

集約・構造変換の他のメソッド

出典・検証情報

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