sum_distinct(col)
Описание
Функция sum_distinct()
вычисляет сумму уникальных значений в группе. Это агрегатная функция, которая должна использоваться с groupBy()
.
Параметры
col
: Column - числовой столбец для вычисления суммы уникальных значений
Возвращаемое значение
Тип значения из указанного столбца - сумма уникальных значений в группе
Пример использования
from pyspark.sql.functions import sum_distinct
from pyspark.sql import SparkSession
# Создаем SparkSession
spark = SparkSession.builder.appName("sum_distinct_example").getOrCreate()
# Создаем DataFrame
data = [
("A", 1),
("A", 1),
("A", 2),
("A", 2),
("B", 3),
("B", 3),
("B", 4),
("B", 4)
]
df = spark.createDataFrame(data, ["group", "value"])
# Вычисляем сумму уникальных значений для каждой группы
result = df.groupBy("group").agg(
sum_distinct("value").alias("unique_sum")
).show()
# Результат:
# +-----+-----------+
# |group|unique_sum |
# +-----+-----------+
# |A |3 |
# |B |7 |
# +-----+-----------+
Примечания
- NULL значения игнорируются при вычислении суммы
- Для вычисления суммы всех значений (включая дубликаты) используйте
sum()
- Для подсчета количества уникальных значений используйте
count_distinct()
- Для вычисления среднего значения используйте
avg()