Поделиться через


sum_distinct

Агрегатная функция: возвращает сумму уникальных значений в выражении.

Синтаксис

from pyspark.sql import functions as sf

sf.sum_distinct(col)

Параметры

Параметр Тип Description
col pyspark.sql.Column или str Целевой столбец для вычисления.

Возвраты

pyspark.sql.Column: столбец для вычисляемых результатов.

Примеры

Пример 1. Использование функции sum_distinct в столбце со всеми различными значениями

from pyspark.sql import functions as sf
df = spark.createDataFrame([(1,), (2,), (3,), (4,)], ["numbers"])
df.select(sf.sum_distinct('numbers')).show()
+---------------------+
|sum(DISTINCT numbers)|
+---------------------+
|                   10|
+---------------------+

Пример 2. Использование функции sum_distinct в столбце без различных значений

from pyspark.sql import functions as sf
df = spark.createDataFrame([(1,), (1,), (1,), (1,)], ["numbers"])
df.select(sf.sum_distinct('numbers')).show()
+---------------------+
|sum(DISTINCT numbers)|
+---------------------+
|                    1|
+---------------------+

Пример 3. Использование функции sum_distinct в столбце со значениями NULL и повторяющимися значениями

from pyspark.sql import functions as sf
df = spark.createDataFrame([(None,), (1,), (1,), (2,)], ["numbers"])
df.select(sf.sum_distinct('numbers')).show()
+---------------------+
|sum(DISTINCT numbers)|
+---------------------+
|                    3|
+---------------------+