collect_list(col)
Описание
Функция collect_list() собирает все значения столбца в массив, сохраняя дубликаты. Это агрегатная функция, которая должна использоваться с groupBy().
Параметры
col: Column - столбец, значения которого нужно собрать в массив
Возвращаемое значение
Array - массив всех значений столбца
Пример использования
from pyspark.sql.functions import collect_list
from pyspark.sql import SparkSession
# Создаем SparkSession
spark = SparkSession.builder.appName("collect_list_example").getOrCreate()
# Создаем DataFrame
data = [
    ("A", 1),
    ("A", 2),
    ("A", 2),
    ("B", 3),
    ("B", 4),
    ("B", 4)
]
df = spark.createDataFrame(data, ["group", "value"])
# Используем collect_list для сбора значений в массив
result = df.groupBy("group").agg(
    collect_list("value").alias("values_list")
).show(truncate=False)
# Результат:
# +-----+------------+
# |group|values_list |
# +-----+------------+
# |A    |[1, 2, 2]   |
# |B    |[3, 4, 4]   |
# +-----+------------+
# Пример с разными типами данных
data = [
    ("A", "x"),
    ("A", "y"),
    ("A", "x"),
    ("B", "z"),
    ("B", "w"),
    ("B", "z")
]
df = spark.createDataFrame(data, ["group", "value"])
result = df.groupBy("group").agg(
    collect_list("value").alias("values_list")
).show(truncate=False)
 Примечания
- Функция сохраняет дубликаты значений
 - Порядок элементов в массиве не гарантирован
 - Для удаления дубликатов используйте 
collect_set() - Для сортировки массива используйте 
array_sort() - Для фильтрации массива используйте 
filter()