メインコンテンツまでスキップ

配列アグ

重複のあるオブジェクトのリストを返します。

構文

Python
from pyspark.sql import functions as sf

sf.array_agg(col)

パラメーター

パラメーター

Type

説明

col

pyspark.sql.Column または列名

ターゲットカラムをコンピュートに。

戻り値

pyspark.sql.Column: 重複のあるオブジェクトのリスト。

例1 : int列でarray_agg関数を使用する

Python
from pyspark.sql import functions as sf
df = spark.createDataFrame([[1],[1],[2]], ["c"])
df.agg(sf.sort_array(sf.array_agg('c')).alias('sorted_list')).show()
Output
+-----------+
|sorted_list|
+-----------+
| [1, 1, 2]|
+-----------+

例2 : 文字列列でarray_agg関数を使用する

Python
from pyspark.sql import functions as sf
df = spark.createDataFrame([["apple"],["apple"],["banana"]], ["c"])
df.agg(sf.sort_array(sf.array_agg('c')).alias('sorted_list')).show(truncate=False)
Output
+----------------------+
|sorted_list |
+----------------------+
|[apple, apple, banana]|
+----------------------+

例3 : null値を持つ列にarray_agg関数を使用する

Python
from pyspark.sql import functions as sf
df = spark.createDataFrame([[1],[None],[2]], ["c"])
df.agg(sf.sort_array(sf.array_agg('c')).alias('sorted_list')).show()
Output
+-----------+
|sorted_list|
+-----------+
| [1, 2]|
+-----------+

例4 : 異なるデータ型の列でarray_agg関数を使用する

Python
from pyspark.sql import functions as sf
df = spark.createDataFrame([[1],["apple"],[2]], ["c"])
df.agg(sf.sort_array(sf.array_agg('c')).alias('sorted_list')).show()
Output
+-------------+
| sorted_list|
+-------------+
|[1, 2, apple]|
+-------------+