Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Calcola i quantili approssimativi delle colonne numeriche di un oggetto DataFrame.
Il risultato di questo algoritmo ha il limite deterministico seguente: se ha DataFrame n elementi e se si richiede il quantile con probabilità p fino all'errore err, l'algoritmo restituirà un campione x da DataFrame in modo che il rango esatto di x sia vicino a (p _ N). Più precisamente, floor((p - err) _ N) <= rank(x) <= ceil((p + err) \* N).
Questo metodo implementa una variante dell'algoritmo Greenwald-Khanna con alcune ottimizzazioni della velocità.
Sintassi
approxQuantile(col, probabilities, relativeError)
Parametri
| Parametro | Tipo | Descrizione |
|---|---|---|
col |
str, list o tupla | Nome di una singola colonna o elenco di nomi per più colonne. |
probabilities |
list o tupla di float | Elenco di probabilità quantile. Ogni numero deve essere un valore float nell'intervallo [0, 1]. Ad esempio, 0,0 è il valore minimo, 0,5 è la median e 1,0 è il valore massimo. |
relativeError |
galleggiare | Precisione di destinazione relativa da ottenere (>= 0). Se impostato su zero, vengono calcolati i quantili esatti, che potrebbero essere molto costosi. I valori maggiori di 1 danno lo stesso risultato di 1. |
Restituzioni
list
Se col è una stringa, restituisce un elenco di valori float. Se col è un elenco o una tupla di stringhe, restituisce un elenco di elenchi di valori float.
Note
I valori Null vengono ignorati nelle colonne numeriche prima del calcolo. Per le colonne contenenti solo valori Null, viene restituito un elenco vuoto.
Examples
Calcolare i quantili per una singola colonna.
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]
Calcolare i quantili per più colonne.
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]]
Gestire i valori 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]