Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Beräknar ungefärliga quantiles för numeriska kolumner i en DataFrame.
Resultatet av den här algoritmen har följande deterministiska bindning: om DataFrame har N-element och om vi begär kvantilen med sannolikhet p upp till fel errreturnerar algoritmen ett exempel x från DataFrame så att den exakta rangordningen x för är nära (p _ N). Mer exakt, floor((p - err) _ N) <= rank(x) <= ceil((p + err) \* N).
Den här metoden implementerar en variant av Greenwald-Khanna-algoritmen med vissa hastighetsoptimeringar.
Syntax
approxQuantile(col, probabilities, relativeError)
Parameters
| Parameter | Type | Beskrivning |
|---|---|---|
col |
str, list eller tuppeln | Ett enstaka kolumnnamn eller en lista med namn för flera kolumner. |
probabilities |
lista eller tuppeln av flyttal | En lista över kvantilannolikheter. Varje tal måste vara en flyttal i intervallet [0, 1]. Till exempel är 0,0 det minsta, 0,5 är medianvärdet och 1,0 är det maximala. |
relativeError |
flyta/sväva | Den relativa målprecisionen för att uppnå (>= 0). Om värdet är noll beräknas de exakta kvantantiklarna, vilket kan vara mycket dyrt. Värden som är större än 1 ger samma resultat som 1. |
Retur
list
Om col är en sträng returnerar du en lista med flyttal. Om col är en lista eller tuppeln med strängar returnerar en lista med listor med flyttal.
Notes
Null-värden ignoreras i numeriska kolumner före beräkningen. För kolumner som endast innehåller null-värden returneras en tom lista.
Exempel
Beräkna kvantantiles för en enda kolumn.
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]
Beräkna kvantantiles för flera kolumner.
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]]
Hantera null-värden.
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]