Skip to content

percentile_approx(col, percentage, accuracy=10000)

Описание

Функция percentile_approx() вычисляет приближенный процентиль для числового столбца. Это агрегатная функция, которая должна использоваться с groupBy().

Параметры

  • col: Column - числовой столбец для вычисления процентиля
  • percentage: Double - значение процентиля от 0 до 1
  • accuracy: Integer - точность вычисления (по умолчанию 10000)

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

Double - приближенное значение процентиля

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

from pyspark.sql.functions import percentile_approx
from pyspark.sql import SparkSession

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

# Создаем DataFrame
data = [
    ("A", 1),
    ("A", 2),
    ("A", 3),
    ("B", 4),
    ("B", 5),
    ("B", 6),
    ("B", None)
]
df = spark.createDataFrame(data, ["group", "value"])

# Вычисляем 50-й процентиль (медиану)
result = df.groupBy("group").agg(
    percentile_approx("value", 0.5).alias("median")
).show()

# Результат:
# +-----+------+
# |group|median|
# +-----+------+
# |A    |2.0   |
# |B    |5.0   |
# +-----+------+

Примечания

  • NULL значения игнорируются при вычислении процентиля
  • Для точного вычисления процентиля используйте percentile()
  • Для вычисления медианы используйте median()
  • Для вычисления среднего значения используйте avg()