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