Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Calcule les quantiles approximatifs des colonnes numériques d’un DataFrame.
Le résultat de cet algorithme a la limite déterministe suivante : si le DataFrame n éléments et si nous demandons le quantile à la probabilité p jusqu’à l’erreur err, l’algorithme retourne un échantillon x à partir de celui-ci DataFrame afin que le rang exact soit x proche (p _ N). Plus précisément, floor((p - err) _ N) <= rank(x) <= ceil((p + err) \* N).
Cette méthode implémente une variante de l’algorithme Greenwald-Khanna avec des optimisations de vitesse.
Syntaxe
approxQuantile(col, probabilities, relativeError)
Paramètres
| Paramètre | Type | Description |
|---|---|---|
col |
str, list ou tuple | Un nom de colonne unique ou une liste de noms pour plusieurs colonnes. |
probabilities |
liste ou tuple de float | Liste des probabilités quantiles. Chaque nombre doit être un float dans la plage [0, 1]. Par exemple, 0,0 est le minimum, 0,5 est la médiane, et 1,0 est le maximum. |
relativeError |
flotter | Précision cible relative à atteindre (>= 0). Si la valeur est égale à zéro, les quantiles exacts sont calculés, ce qui peut être très coûteux. Les valeurs supérieures à 1 donnent le même résultat que 1. |
Retours
list
S’il col s’agit d’une chaîne, retourne une liste de floats. S’il col s’agit d’une liste ou d’un tuple de chaînes, retourne une liste de listes de floats.
Remarques
Les valeurs Null sont ignorées dans les colonnes numériques avant le calcul. Pour les colonnes contenant uniquement des valeurs Null, une liste vide est retournée.
Exemples
Calculez des quantiles pour une seule colonne.
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]
Calculez des quantiles pour plusieurs colonnes.
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]]
Gérez les valeurs 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]