トップ / 集約・構造変換
グループ内の複数行の文字列を、区切り文字でつないだ1つの文字列にまとめる。
df.group_by("dept").agg(listagg("name", ",").alias("names"))
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)