array_agg

array_agg(col)

array_agg - В библиотеке PySpark функция array_agg используется для агрегации значений в массиве (array) для каждой группы, подобно функции array_agg в SQL. Возвращает список объектов с дубликатами.

Параметры
col: Column or str. Столбец, значения которого нужно агрегировать в массив.
Возвращает
Column - Результатом является новый столбец, содержащий массив, агрегированных значений.

array_agg example

from pyspark.sql import SparkSession
from pyspark.sql.functions import array_agg

# Создание сессии Spark
spark = SparkSession.builder.appName("array_agg_example").getOrCreate()

# Пример данных
data = [(1, "a"), (1, "b"), (2, "c"), (2, "d"), (2, "e")]
df = spark.createDataFrame(data, ["group", "value"])
df.show()

+-----+-----+
|group|value|
+-----+-----+
|    1|    a|
|    1|    b|
|    2|    c|
|    2|    d|
|    2|    e|
+-----+-----+

# Агрегация значений в массив для каждой группы
df_with_array_agg = df.groupby("group").agg(array_agg("value").alias("values_array"))

# Отображение результата
df_with_array_agg.show(truncate=False)

+-----+------------+
|group|values_array|
+-----+------------+
|1    |[a, b]      |
|2    |[c, d, e]   |
+-----+------------+

pyspark array_agg

Добавлено в версии3.5.0.