Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Oblicza przybliżone kwantyle kolumn liczbowych elementu DataFrame.
Wynik tego algorytmu ma następującą granicę deterministyczną: jeśli element ma N elementów, a jeśli DataFrame żądamy kwantylu z prawdopodobieństwem p do błędu err, algorytm zwróci próbkę x z DataFrame wartości , tak aby dokładna ranga x obiektu mieściła się blisko (p _ N). Dokładniej: floor((p - err) _ N) <= rank(x) <= ceil((p + err) \* N).
Ta metoda implementuje odmianę algorytmu Greenwald-Khanna z pewnymi optymalizacjami szybkości.
Składnia
approxQuantile(col, probabilities, relativeError)
Parametry
| Parameter | Typ | Opis |
|---|---|---|
col |
str, list lub krotka | Nazwa pojedynczej kolumny lub lista nazw dla wielu kolumn. |
probabilities |
lista lub krotka zmiennoprzecinkowa | Lista prawdopodobieństwa kwantylu. Każda liczba musi być zmiennoprzecinkowa w zakresie [0, 1]. Na przykład wartość 0.0 jest minimalna, 0,5 to mediana, a wartość 1,0 jest maksymalną wartością. |
relativeError |
float | Względna precyzja docelowa do osiągnięcia (>= 0). Jeśli ustawiono wartość zero, obliczane są dokładne kwantyle, co może być bardzo kosztowne. Wartości większe niż 1 dają taki sam wynik jak 1. |
Zwroty
list
Jeśli col jest ciągiem, zwraca listę zmiennoprzecinkowych. Jeśli col jest listą lub krotką ciągów, zwraca listę list zmiennoprzecinkowych.
Notatki
Wartości null są ignorowane w kolumnach liczbowych przed obliczeniem. W przypadku kolumn zawierających tylko wartości null zwracana jest pusta lista.
Examples
Oblicz kwantyle dla pojedynczej kolumny.
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]
Oblicz kwantyle dla wielu kolumn.
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]]
Obsługa wartości 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]