Skip to content

approx_percentile(col, percentage[, accuracy])

Описание

Функция approx_percentile() возвращает приблизительный процентиль числового столбца. Процентиль - это значение, ниже которого находится указанный процент данных.

Параметры

  • col: Column - числовой столбец для расчета процентиля
  • percentage: double - процент (от 0.0 до 1.0)
  • accuracy: int (опционально) - точность расчета (по умолчанию 10000)

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

Double - приблизительный процентиль

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

from pyspark.sql.functions import approx_percentile
from pyspark.sql import SparkSession

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

# Создаем DataFrame
data = [(i,) for i in range(1, 101)]
df = spark.createDataFrame(data, ["value"])

# Используем approx_percentile для разных процентилей
result = df.agg(
    approx_percentile("value", 0.25).alias("25th_percentile"),
    approx_percentile("value", 0.5).alias("median"),
    approx_percentile("value", 0.75).alias("75th_percentile"),
    approx_percentile("value", 0.9, 1000).alias("90th_percentile_low_accuracy"),
    approx_percentile("value", 0.9, 100000).alias("90th_percentile_high_accuracy")
).show()

# Результат:
# +---------------+-------+---------------+------------------------+-------------------------+
# |25th_percentile|median |75th_percentile|90th_percentile_low_accuracy|90th_percentile_high_accuracy|
# +---------------+-------+---------------+------------------------+-------------------------+
# |25.0           |50.0   |75.0          |90.0                    |90.0                      |
# +---------------+-------+---------------+------------------------+-------------------------+

Примечания

  • Чем выше значение accuracy, тем точнее результат, но больше потребление памяти
  • Для точного расчета процентиля используйте percentile()
  • Для расчета медианы можно использовать approx_percentile(col, 0.5)
  • Для расчета квартилей используйте значения 0.25, 0.5 и 0.75