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()