Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Calcula os quantiles aproximados de colunas numéricas de um DataFrame.
O resultado desse algoritmo tem o seguinte limite determinístico: se houver DataFrame N elementos e se solicitarmos o quantile com probabilidade p até o erroerr, o algoritmo retornará uma amostra x do DataFrame modo que a classificação x está próxima de (p _ N). Mais precisamente, floor((p - err) _ N) <= rank(x) <= ceil((p + err) \* N).
Esse 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 único nome de coluna ou uma lista de nomes para várias colunas. |
probabilities |
lista ou tupla de float | Uma lista de probabilidades quantile. Cada número deve ser um float no intervalo [0, 1]. Por exemplo, 0,0 é o mínimo, 0,5 é a mediana e 1,0 é o máximo. |
relativeError |
derivar | A precisão de destino relativa a ser alcançada (>= 0). Se definido como zero, os quantiles exatos serão computados, o que pode ser muito caro. Valores maiores que 1 dão o mesmo resultado que 1. |
Devoluções
list
Se col for uma cadeia de caracteres, retornará uma lista de floats. Se col for uma lista ou tupla de cadeias de caracteres, retornará uma lista de listas de floats.
Observações
Valores nulos são ignorados em colunas numéricas antes do cálculo. Para colunas que contêm apenas valores nulos, uma lista vazia é retornada.
Exemplos
Calcular 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]
Calcular quantiles para várias 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]]
Manipular 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]