Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Calcula los cuantiles aproximados de columnas numéricas de .DataFrame
El resultado de este algoritmo tiene el siguiente límite determinista: si tiene DataFrame N elementos y si solicitamos el cuantitil en probabilidad p hasta el error err, el algoritmo devolverá una muestra x de DataFrame para que la clasificación exacta de x esté cerca de (p _ N). Más precisamente, floor((p - err) _ N) <= rank(x) <= ceil((p + err) \* N).
Este método implementa una variación del algoritmo de Greenwald-Khanna con algunas optimizaciones de velocidad.
Sintaxis
approxQuantile(col, probabilities, relativeError)
Parámetros
| Parámetro | Tipo | Descripción |
|---|---|---|
col |
str, list o tupla | Un nombre de columna único o una lista de nombres para varias columnas. |
probabilities |
lista o tupla de float | Lista de probabilidades cuantiles. Cada número debe ser un float en el intervalo [0, 1]. Por ejemplo, 0,0 es el mínimo, 0,5 es la mediana y 1,0 es el máximo. |
relativeError |
flotante | Precisión de destino relativa que se va a lograr (>= 0). Si se establece en cero, se calculan los cuantiles exactos, lo que podría ser muy caro. Los valores mayores que 1 dan el mismo resultado que 1. |
Devoluciones
list
Si col es una cadena, devuelve una lista de floats. Si col es una lista o tupla de cadenas, devuelve una lista de listas de floats.
Notas
Los valores NULL se omiten en columnas numéricas antes del cálculo. Para las columnas que solo contienen valores NULL, se devuelve una lista vacía.
Ejemplos
Calcule cuantiles para una sola columna.
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]
Calcule cuantiles para varias columnas.
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]]
Controle los valores 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]