Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Berechnet die ungefähren Quantiles numerischer Spalten eines .DataFrame
Das Ergebnis dieses Algorithmus weist die folgende deterministische Bindung auf: Wenn die DataFrame N-Elemente vorhanden sind und wenn wir das Quantile bei der Wahrscheinlichkeit p bis zum Fehler erranfordern, gibt der Algorithmus eine Stichprobe x aus der DataFrame so zurück, dass die genaue Rangfolge x nahe (p _ N) liegt. Genauer gesagt. floor((p - err) _ N) <= rank(x) <= ceil((p + err) \* N)
Diese Methode implementiert eine Variation des Greenwald-Khanna Algorithmus mit einigen Geschwindigkeitsoptimierungen.
Syntax
approxQuantile(col, probabilities, relativeError)
Parameter
| Parameter | Typ | Beschreibung |
|---|---|---|
col |
str, list, or tuple | Ein einzelner Spaltenname oder eine Liste mit Namen für mehrere Spalten. |
probabilities |
Liste oder Tupel von Float | Eine Liste der Quantile-Wahrscheinlichkeiten. Jede Zahl muss ein Gleitkomma im Bereich [0, 1] sein. Beispielsweise ist 0,0 das Minimum, 0,5 ist der Median, und 1,0 ist das Maximum. |
relativeError |
Schweben | Die relative Zielgenauigkeit, die erreicht werden soll (>= 0). Bei Festlegung auf Null werden die genauen Quantiles berechnet, was sehr teuer sein könnte. Werte größer als 1 geben dasselbe Ergebnis wie 1 an. |
Rückkehr
list
Wenn col es sich um eine Zeichenfolge handelt, wird eine Liste von Floats zurückgegeben. Wenn col es sich um eine Liste oder ein Tupel von Zeichenfolgen handelt, wird eine Liste mit Listen mit Floats zurückgegeben.
Hinweise
Nullwerte werden vor der Berechnung in numerischen Spalten ignoriert. Bei Spalten, die nur NULL-Werte enthalten, wird eine leere Liste zurückgegeben.
Beispiele
Berechnen von Quantiles für eine einzelne Spalte.
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]
Berechnen von Quantiles für mehrere Spalten.
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]]
Behandeln sie Nullwerte.
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]