Skip to content

cume_dist()

Описание

Функция cume_dist() вычисляет кумулятивное распределение значений в окне. Возвращает относительный ранг текущей строки в окне, где значение варьируется от 0 до 1.

Параметры

Нет параметров

Возвращаемое значение

Double - значение от 0 до 1, представляющее кумулятивное распределение

Пример использования

from pyspark.sql import SparkSession
from pyspark.sql.window import Window
from pyspark.sql.functions import cume_dist

# Создаем SparkSession
spark = SparkSession.builder.appName("cume_dist_example").getOrCreate()

# Создаем DataFrame
data = [
    ("A", 100),
    ("B", 200),
    ("C", 300),
    ("D", 400),
    ("E", 500)
]
df = spark.createDataFrame(data, ["name", "value"])

# Определяем окно
window = Window.orderBy("value")

# Вычисляем кумулятивное распределение
result = df.select(
    "name",
    "value",
    cume_dist().over(window).alias("cume_dist")
).show()

# Результат:
# +----+-----+---------+
# |name|value|cume_dist|
# +----+-----+---------+
# |   A|  100|      0.2|
# |   B|  200|      0.4|
# |   C|  300|      0.6|
# |   D|  400|      0.8|
# |   E|  500|      1.0|
# +----+-----+---------+

Примечания

  • Функция должна использоваться с оконной спецификацией
  • Значение 1.0 означает, что все строки в окне имеют значение меньше или равное текущему
  • Для вычисления ранга используйте rank()
  • Для вычисления плотного ранга используйте dense_rank()
  • Для получения номера строки используйте row_number()