Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Berekent de geschatte kwantielen van numerieke kolommen van een DataFrame.
Het resultaat van dit algoritme heeft de volgende deterministische afhankelijkheid: als het DataFrame N-elementen bevat en als we het kwantiel bij waarschijnlijkheid p tot fout erraanvragen, retourneert het algoritme een steekproef x van de DataFrame waarde, zodat de exacte rang x van dicht bij (p _ N) ligt. Meer precies, floor((p - err) _ N) <= rank(x) <= ceil((p + err) \* N).
Met deze methode wordt een variatie van het Greenwald-Khanna algoritme geïmplementeerd met enkele snelheidsoptimalisaties.
Syntaxis
approxQuantile(col, probabilities, relativeError)
Parameterwaarden
| Kenmerk | Typ | Beschrijving |
|---|---|---|
col |
str, list of tuple | Eén kolomnaam of een lijst met namen voor meerdere kolommen. |
probabilities |
lijst of tuple van float | Een lijst met kwantiel waarschijnlijkheden. Elk getal moet een float in het bereik [0, 1] zijn. 0,0 is bijvoorbeeld het minimum, 0,5 is de mediaan en 1,0 is het maximum. |
relativeError |
zweven | De relatieve doelprecisie om te bereiken (>= 0). Als deze is ingesteld op nul, worden de exacte kwantielen berekend, wat erg duur kan zijn. Waarden groter dan 1 geven hetzelfde resultaat als 1. |
Retouren
list
Als col dit een tekenreeks is, wordt een lijst met floats geretourneerd. Als col dit een lijst of tuple met tekenreeksen is, retourneert u een lijst met lijsten met floats.
Aantekeningen
Null-waarden worden genegeerd in numerieke kolommen vóór de berekening. Voor kolommen met alleen null-waarden wordt een lege lijst geretourneerd.
Examples
Bereken kwantielen voor één kolom.
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]
Bereken kwantielen voor meerdere kolommen.
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]]
Null-waarden verwerken.
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]