返回具有重复项的对象列表。
Syntax
from pyspark.sql import functions as sf
sf.array_agg(col)
参数
| 参数 | 类型 | Description |
|---|---|---|
col |
pyspark.sql.Column 或列名 |
要计算的目标列。 |
退货
pyspark.sql.Column:具有重复项的对象列表。
例子
示例 1:对 int 列使用 array_agg 函数
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()
+-----------+
|sorted_list|
+-----------+
| [1, 1, 2]|
+-----------+
示例 2:对字符串列使用 array_agg 函数
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)
+----------------------+
|sorted_list |
+----------------------+
|[apple, apple, banana]|
+----------------------+
示例 3:对具有 null 值的列使用 array_agg 函数
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()
+-----------+
|sorted_list|
+-----------+
| [1, 2]|
+-----------+
示例 4:对数据类型不同的列使用 array_agg 函数
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()
+-------------+
| sorted_list|
+-------------+
|[1, 2, apple]|
+-------------+