Dans ce guide, nous verrons comment tracer les données PySpark sur un histogramme. Nous pouvons voir ici deux scénarios. L'histogramme est créé sur PySpark Pandas DataFrame et sur les données RDD. Pour ces deux scénarios, PySpark fournit deux fonctions : pyspark.pandas.DataFrame.plot.hist() & pyspark.RDD.histogram.
Sujet du contenu :
- Tracer l'histogramme sur le DataFrame PySpark Pandas
- Tracer l'histogramme sur le DataFrame PySpark Pandas avec le paramètre Bins
- Tracer l'histogramme sur le RDD PySpark en spécifiant le numéro de compartiment
- Tracer l'histogramme sur le RDD PySpark en spécifiant la taille de chaque compartiment
Pyspark.pandas.DataFrame.plot.hist()
Dans ce scénario, l'histogramme s'affiche sous la forme d'une représentation graphique des données qui répartit une plage de classes en colonnes (à partir de PySpark Pandas DataFrame) avec l'axe horizontal des abscisses. L'axe des y représente le nombre d'occurrences dans le DataFrame PySpark Pandas pour chaque colonne.
Syntaxe:
pyspark_pandas_DataFrame.plot.hist(bins,...)
Il prend le nombre total de bacs comme paramètre facultatif qui est un entier et quelques arguments de mots clés facultatifs. Si les bacs ne sont pas spécifiés pour chaque colonne, une barre est créée.
Tracer l'histogramme sur le DataFrame PySpark Pandas
Créez un DataFrame PySpark Pandas ayant 2 colonnes avec 4 enregistrements. Tracez l'histogramme sans passer de paramètre à la fonction plot.hist().
de pyspark importer des pandaspyspark_pandas_dataframe=pandas.DataFrame({ 'Hauteur_bâtiment' :[ 120,56 , 234,67 , 12.0 , 200,45 ], 'Bâtiment_Zone' :[ 2 , 3 , 1 , 4 ]})
imprimer (pyspark_pandas_dataframe)
# Histogramme PySpark-Pandas
pyspark_pandas_dataframe.plot.hist()
Sortir:
Ici, les noms de colonne sont 'Building_height' et 'Building_Area'.
Regardons l'histogramme :
Le nombre total de lignes dans le DataFrame précédent est de 4. Ainsi, 4 bacs sont créés.
Tracer l'histogramme sur le DataFrame PySpark Pandas avec le paramètre Bins
Créez un DataFrame PySpark Pandas ayant 2 colonnes avec 4 enregistrements. Tracez l'histogramme sans passer de paramètre à la fonction plot.hist().
de pyspark importer des pandaspyspark_pandas_dataframe=pandas.DataFrame({ 'Hauteur_bâtiment' :[ 120,56 , 234,67 , 12.0 , 200,45 ], 'Bâtiment_Zone' :[ 2 , 3 , 1 , 4 ]})
# Histogramme PySpark-Pandas avec 2 bacs
pyspark_pandas_dataframe.plot.hist(bins= 2 )
Sortir:
Ici, les noms de colonne sont 'Building_height' et 'Building_Area'.
Regardons l'histogramme - le rouge fait référence à 'Building_Area' et le bleu fait référence à la colonne 'Building_height':
Comme nous l'avons précisé, seuls 2 bacs et 2 barres ont été créés. Quatre rangées sont regroupées en 2 seaux ici.
Tracer l'histogramme sur le RDD PySpark en spécifiant le numéro de compartiment
Lorsque vous travaillez avec RDD, l'histogramme peut être renvoyé sous la forme d'un tuple qui inclut les compartiments et les valeurs totales présentes dans chaque compartiment.
Syntaxe:
pyspark_RDD.histogram(buckets)Dans ce scénario, nous transmettons le nombre de compartiments (entier) inclus dans l'histogramme. Il renvoie le tuple de listes qui incluent les plages de buckets et les occurrences de valeurs correspondantes au format suivant : ([plages de compartiments…], [occurrences de valeurs…]).
Exemple 1:
Créons un RDD nommé 'Building_height' avec 10 valeurs et créons un histogramme avec 3 seaux.
importer pysparkdepuis pyspark.sql importer SparkSession
depuis pyspark.rdd importer RDD
spark_app = SparkSession.builder.appName( 'Linux' ).getOrCreate()
# Créer un RDD avec 10 valeurs
Building_height =spark_app.sparkContext.parallelize([ 120,56 , 234,67 , 12.0 , 200,45 , 17.8 , 24 , 56 , 78 , 90 , 100 ])
imprimer( 'Réel: ' ,Hauteur_bâtiment.collect())
# Spécifier 3 compartiments
Building_height.histogram( 3 )
Sortir:
- Bucket-1 va de 12,0 à 86,223 : dans cette plage, le nombre total de valeurs présentes dans le bucket est de 5.
- Bucket-2 va de 86.223 à 160.446 : dans cette plage, le nombre total de valeurs présentes dans le bucket est de 3.
- Bucket-3 va de 160,446 à 234,67 : dans cette plage, le nombre total de valeurs présentes dans le bucket est de 2.
Exemple 2 :
Créez un histogramme avec 2 compartiments sur le RDD précédemment créé.
importer pysparkdepuis pyspark.sql importer SparkSession
depuis pyspark.rdd importer RDD
spark_app = SparkSession.builder.appName( 'Linux' ).getOrCreate()
# Créer un RDD avec 10 valeurs
Building_height =spark_app.sparkContext.parallelize([ 120,56 , 234,67 , 12.0 , 200,45 , 17.8 , 24 , 56 , 78 , 90 , 100 ])
imprimer( 'Réel: ' ,Hauteur_bâtiment.collect())
# Spécifier 2 buckets
Building_height.histogram( 2 )
Sortir:
- Le compartiment 1 va de 12,0 à 123,335. Dans cette plage, le nombre total de valeurs présentes dans le bucket est de 8.
- Le compartiment 2 est compris entre 123,335 et 234,67 : dans cette plage, le nombre total de valeurs présentes dans le compartiment est de 2.
Tracer l'histogramme sur le RDD PySpark en spécifiant la taille de chaque compartiment
Dans le scénario précédent, nous avons passé les compartiments à la fonction RDD.histogram(). Maintenant, nous passons les tailles de bucket les unes après les autres dans une liste et passons cette liste en tant que paramètre à cette fonction. Assurez-vous que nous devons spécifier au moins deux compartiments dans l'ordre croissant/croissant et qu'il n'y aura pas de valeurs en double.
Syntaxe:
pyspark_RDD.histogram([plages de compartiments…])Dans ce scénario, nous transmettons le nombre de compartiments (entier) inclus dans l'histogramme. Il renvoie le tuple de listes qui incluent les plages de buckets et les occurrences de valeurs correspondantes au format suivant : ([plages de compartiments…], [occurrences de valeurs…]).
Exemple 1:
Créons un RDD nommé 'Building_height' avec 10 valeurs et créons un histogramme avec la plage de valeurs [0, 50, 100, 150, 200, 250].
importer pysparkdepuis pyspark.sql importer SparkSession
depuis pyspark.rdd importer RDD
spark_app = SparkSession.builder.appName( 'Linux' ).getOrCreate()
# Créer un RDD avec 10 valeurs
Building_height =spark_app.sparkContext.parallelize([ 120,56 , 234,67 , 12.0 , 200,45 , 17.8 , 24 , 56 , 178 , 90 , 100 ])
imprimer( 'Réel: ' ,Hauteur_bâtiment.collect())
# Spécifier le bucket avec la taille - [0,50,100,150,200,250]
Hauteur_bâtiment.histogramme([ 0 , cinquante , 100 , 150 , 200 , 250 ])
Sortir:
- Bucket 1 : (0 à 50) : les valeurs totales dans ce bucket sont 3.
- Bucket 1 : (50 à 100) : les valeurs totales dans ce bucket sont 2.
- Bucket 1 : (100 à 150) : les valeurs totales dans ce bucket sont 2.
- Bucket 1 : (150 à 200) : les valeurs totales dans ce bucket sont 2.
- Bucket 1 : (200 à 250) : les valeurs totales dans ce bucket sont 2.
Exemple 2 :
Créez un histogramme avec la plage de valeurs du seau [0, 100, 200, 300].
importer pysparkdepuis pyspark.sql importer SparkSession
depuis pyspark.rdd importer RDD
spark_app = SparkSession.builder.appName( 'Linux' ).getOrCreate()
# Créer un RDD avec 10 valeurs
Building_height =spark_app.sparkContext.parallelize([ 120,56 , 234,67 , 12.0 , 200,45 , 17.8 , 24 , 56 , 178 , 90 , 100 ])
imprimer( 'Réel: ' ,Hauteur_bâtiment.collect())
# Spécifier le bucket avec la taille - [0,100,200,300]
Hauteur_bâtiment.histogramme([ 0 , 100 , 200 , 300 ])
Sortir:
- Seau 1 : (0 à 100). La valeur totale dans ce seau est 5.
- Seau 2 : (100 à 200). La valeur totale dans ce compartiment est 3.
- Seau 3 : (200 à 300). La valeur totale dans ce bucket est 2.
Conclusion
Nous avons vu comment créer des histogrammes dans PySpark sur PySpark Pandas DataFrame et RDD. histogram() est la fonction utilisée pour obtenir l'histogramme sur les données RDD. Le plot.hist() est utilisé pour afficher l'histogramme sur PySpark Pandas DataFrame. Nous avons abordé ces fonctions avec des exemples en couvrant tous les paramètres.