Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Vypočítá přibližné kvantové hodnoty číselných sloupců DataFrame.
Výsledek tohoto algoritmu má následující deterministický mez: pokud DataFrame má N prvků a pokud požádáme kvantily pravděpodobností p až do chyby err, vrátí algoritmus vzorek x z DataFrame tak, aby přesný pořadí x bylo blízko (p _ N). Přesněji řečeno, floor((p - err) _ N) <= rank(x) <= ceil((p + err) \* N).
Tato metoda implementuje variantu algoritmu Greenwald-Khanna s některými optimalizacemi rychlosti.
Syntaxe
approxQuantile(col, probabilities, relativeError)
Parametry
| Parameter | Typ | Description |
|---|---|---|
col |
str, list nebo řazená kolekce členů | Název jednoho sloupce nebo seznam názvů pro více sloupců |
probabilities |
seznam nebo řazená kolekce členů float | Seznam kvantových pravděpodobností. Každé číslo musí být plovoucí v rozsahu [0, 1]. Například 0,0 je minimum, 0,5 je medián a 1,0 je maximum. |
relativeError |
float | Relativní cílová přesnost k dosažení (>= 0). Pokud je hodnota nastavená na nulu, vypočítá se přesné quantily, což může být velmi nákladné. Hodnoty větší než 1 dávají stejný výsledek jako 1. |
Návraty
list
Pokud col je řetězec, vrátí seznam float. Pokud col je seznam nebo řazená kolekce řetězců, vrátí seznam seznamů float.
Poznámky
Hodnoty null se před výpočtem ignorují v číselných sloupcích. Pro sloupce obsahující pouze hodnoty null se vrátí prázdný seznam.
Příklady
Vypočítat quantily pro jeden sloupec.
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]
Výpočet quantiles pro více sloupců
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]]
Zpracování hodnot 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]