percentile_approx(col, percentage, accuracy=10000)
Описание
Функция percentile_approx() вычисляет приближенный процентиль для числового столбца. Это агрегатная функция, которая должна использоваться с groupBy().
Параметры
col: Column - числовой столбец для вычисления процентиляpercentage: Double - значение процентиля от 0 до 1accuracy: 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()