Skip to content

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()