Aller au contenu principal

histogram_numeric

Calcule un histogramme sur la colonne numérique « col » en utilisant nb compartiments. La valeur de retour est un tableau de paires (x,y) représentant les centres des compartiments de l'histogramme. À mesure que la valeur de « nb » est augmentée, l'approximation de l'histogramme devient plus fine, mais peut produire des artefacts autour des valeurs aberrantes. En pratique, 20 à 40 compartiments d'histogramme semblent bien fonctionner, un plus grand nombre de compartiments étant nécessaire pour les datasets asymétriques ou plus petits. Notez que cette fonction crée un histogramme avec des largeurs de compartiments non uniformes. Il n'offre aucune garantie en termes d'erreur quadratique moyenne de l'histogramme, mais en pratique, il est comparable aux histogrammes produits par les packages de calcul statistique R/S-Plus. Note : le type de sortie du champ « x » dans la valeur de retour est propagé à partir de la valeur d'entrée consommée dans la fonction d'agrégation.

Syntaxe

Python
from pyspark.sql import functions as sf

sf.histogram_numeric(col, nBins)

parameter

parameter

Type

Description

col

pyspark.sql.Column ou str

Colonne cible sur laquelle travailler.

nBins

pyspark.sql.Column

Nombre de colonnes d'histogramme.

parameter

Type

Description

col

pyspark.sql.Column ou str

Colonne cible sur laquelle travailler.

nBins

pyspark.sql.Column

Nombre de colonnes d'histogramme.

Renvoie

pyspark.sql.Column: un histogramme sur la colonne numérique « col » utilisant nb bins.

Exemples

Exemple 1 : Compute l'histogramme avec 5 compartiments

Python
from pyspark.sql import functions as sf
df = spark.range(100, numPartitions=1)
df.select(sf.histogram_numeric('id', sf.lit(5))).show(truncate=False)
Output
+-----------------------------------------------------------+
|histogram_numeric(id, 5) |
+-----------------------------------------------------------+
|[{11, 25.0}, {36, 24.0}, {59, 23.0}, {84, 25.0}, {98, 3.0}]|
+-----------------------------------------------------------+