Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Вычисляет приблизительные квантили числовых столбцов объекта DataFrame.
Результат этого алгоритма имеет следующую детерминированную привязку: если DataFrame элементы N и если мы запрашиваем квантиль по вероятности p до ошибки err, алгоритм вернет выборку x из DataFrame следующего, чтобы точный ранг x был близок (p _ N). Точнее, floor((p - err) _ N) <= rank(x) <= ceil((p + err) \* N).
Этот метод реализует вариант алгоритма Greenwald-Khanna с некоторыми оптимизациями скорости.
Синтаксис
approxQuantile(col, probabilities, relativeError)
Параметры
| Параметр | Тип | Описание |
|---|---|---|
col |
str, list или кортеж | Имя одного столбца или список имен для нескольких столбцов. |
probabilities |
список или кортеж с плавающей запятой | Список вероятностей квантилей. Каждое число должно быть плавающей запятой в диапазоне [0, 1]. Например, 0.0 является минимальным, 0,5 является медианом, а 1.0 — максимальное значение. |
relativeError |
плавать | Относительная точность целевого объекта для достижения (>= 0). Если задано равно нулю, вычисляются точные квантили, которые могут быть очень дорогими. Значения, превышающие 1, дают тот же результат, что и 1. |
Возвраты
list
Если col это строка, возвращается список с плавающей запятой. Если col это список или кортеж строк, возвращается список списков с плавающей запятой.
Примечания
Значения NULL игнорируются в числовых столбцах перед вычислением. Для столбцов, содержащих только значения NULL, возвращается пустой список.
Примеры
Вычисляйте квантили для одного столбца.
data = [(1,), (2,), (3,), (4,), (5,)]
df = spark.createDataFrame(data, ["values"])
df.stat.approxQuantile("values", [0.0, 0.5, 1.0], 0.05)
# [1.0, 3.0, 5.0]
Вычисляйте квантили для нескольких столбцов.
data = [(1, 10), (2, 20), (3, 30), (4, 40), (5, 50)]
df = spark.createDataFrame(data, ["col1", "col2"])
df.stat.approxQuantile(["col1", "col2"], [0.0, 0.5, 1.0], 0.05)
# [[1.0, 3.0, 5.0], [10.0, 30.0, 50.0]]
Обработка значений NULL.
data = [(1,), (None,), (3,), (4,), (None,)]
df = spark.createDataFrame(data, ["values"])
df.stat.approxQuantile("values", [0.0, 0.5, 1.0], 0.05)
# [1.0, 3.0, 4.0]