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