Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Calcula os quantiles aproximados das colunas numéricas de um DataFrame.
O resultado deste algoritmo tem o seguinte limite determinístico: se o DataFrame tiver N elementos e se pedirmos o quantil com probabilidade p até erro err, então o algoritmo devolverá uma amostra x de , DataFrame de modo que o posto exato de x seja próximo de (p _ N). Mais precisamente, floor((p - err) _ N) <= rank(x) <= ceil((p + err) \* N).
Este método implementa uma variação do algoritmo Greenwald-Khanna com algumas otimizações de velocidade.
Sintaxe
approxQuantile(col, probabilities, relativeError)
Parâmetros
| Parâmetro | Tipo | Descrição |
|---|---|---|
col |
str, lista ou tupla | Um nome de uma única coluna, ou uma lista de nomes para múltiplas colunas. |
probabilities |
Lista ou tupla de flutuador | Uma lista de probabilidades quantíceis. Cada número deve ser um flutuante no intervalo [0, 1]. Por exemplo, 0,0 é o mínimo, 0,5 é a mediana e 1,0 é o máximo. |
relativeError |
float | A precisão relativa do alvo a alcançar (>= 0). Se definido para zero, são calculados os quantiles exatos, o que pode ser muito dispendioso. Valores superiores a 1 dão o mesmo resultado que 1. |
Devoluções
list
Se col for uma cadeia, devolve uma lista de floats. Se col for uma lista ou tupla de cadeias, devolve uma lista de listas de flutuantes.
Notes
Os valores nulos são ignorados nas colunas numéricas antes do cálculo. Para colunas que contêm apenas valores nulos, é devolvida uma lista vazia.
Exemplos
Calcule os quantiles para uma única coluna.
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 quantais para múltiplas colunas.
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]]
Tratar dos valores nulos.
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]