In questa guida vedremo come tracciare i dati PySpark su istogramma. Possiamo vedere due scenari qui. L'istogramma viene creato su PySpark Pandas DataFrame e su dati RDD. Per questi due scenari, PySpark fornisce due funzioni: pyspark.pandas.DataFrame.plot.hist() e pyspark.RDD.histogram.
Argomento dei contenuti:
- Traccia l'istogramma sul dataframe di PySpark Pandas
- Traccia l'istogramma sul dataframe PySpark Pandas con il parametro Bins
- Traccia l'istogramma su PySpark RDD specificando il numero del secchio
- Traccia l'istogramma su PySpark RDD specificando la dimensione di ciascun bucket
Pyspark.pandas.DataFrame.plot.hist()
In questo scenario, l'istogramma viene visualizzato come una rappresentazione grafica dei dati che racchiude un intervallo di classi in colonne (dal DataFrame di PySpark Pandas) insieme all'asse x orizzontale. L'asse y rappresenta il numero di occorrenze nel DataFrame di PySpark Pandas per ogni colonna.
Sintassi:
pyspark_pandas_DataFrame.plot.hist(bins,...)
Prende il numero totale di contenitori come parametro opzionale che è un numero intero e alcuni argomenti di parole chiave opzionali. Se i contenitori non sono specificati per ogni colonna, viene creata una barra.
Traccia l'istogramma sul dataframe di PySpark Pandas
Crea un DataFrame PySpark Pandas con 2 colonne con 4 record. Traccia l'istogramma senza passare alcun parametro alla funzione plot.hist().
da pyspark import pandapyspark_pandas_dataframe=pandas.DataFrame({ 'altezza_edificio' :[ 120,56 , 234,67 , 12.0 , 200,45 ], 'Area di costruzione' :[ 2 , 3 , 1 , 4 ]})
print(pyspark_pandas_dataframe)
# Istogramma PySpark-Pandas
pyspark_pandas_dataframe.plot.hist()
Produzione:
Qui, i nomi delle colonne sono 'Building_height' e 'Building_Area'.
Diamo un'occhiata all'istogramma:
Il numero totale di righe nel DataFrame precedente è 4. Quindi, vengono creati 4 contenitori.
Traccia l'istogramma sul dataframe PySpark Pandas con il parametro Bins
Crea un DataFrame PySpark Pandas con 2 colonne con 4 record. Traccia l'istogramma senza passare alcun parametro alla funzione plot.hist().
da pyspark import pandapyspark_pandas_dataframe=pandas.DataFrame({ 'altezza_edificio' :[ 120,56 , 234,67 , 12.0 , 200,45 ], 'Area di costruzione' :[ 2 , 3 , 1 , 4 ]})
# Istogramma PySpark-Pandas con 2 raccoglitori
pyspark_pandas_dataframe.plot.hist(bins= 2 )
Produzione:
Qui, i nomi delle colonne sono 'Building_height' e 'Building_Area'.
Diamo un'occhiata all'istogramma: il rosso si riferisce a 'Building_Area' e il blu si riferisce alla colonna 'Building_height':
Come abbiamo specificato, sono stati creati solo 2 bin e 2 barre. Quattro righe sono raggruppate in 2 secchi qui.
Traccia l'istogramma su PySpark RDD specificando il numero di bucket
Quando lavori con RDD, l'istogramma può essere restituito sotto forma di tupla che include i bucket e i valori totali presenti in ciascun bucket.
Sintassi:
pyspark_RDD.histogram(bucket)In questo scenario, passiamo il numero di bucket (numero intero) inclusi nell'istogramma. Restituisce la tupla di elenchi che includono gli intervalli di bucket e le occorrenze dei valori corrispondenti nel seguente formato: ([intervalli di bucket...], [occorrenze di valori...]).
Esempio 1:
Creiamo un RDD denominato 'Building_height' con 10 valori e creiamo un istogramma con 3 bucket.
importa pysparkda pyspark.sql importa SparkSession
da pyspark.rdd importa RDD
spark_app = SparkSession.builder.appName( 'linux' ).getOrCreate()
# Crea un RDD con 10 valori
Building_height =spark_app.sparkContext.parallelize([ 120,56 , 234,67 , 12.0 , 200,45 , 17.8 , 24 , 56 , 78 , 90 , 100 ])
stampa( 'Effettivo: ' ,altezza_edificio.collect())
# Specificando 3 secchi
Altezza_edificio.istogramma( 3 )
Produzione:
- Bucket-1 varia da 12.0 a 86.223 : In questo intervallo, il numero totale di valori presenti nel bucket è 5.
- Bucket-2 varia da 86.223 a 160.446 : In questo intervallo, il numero totale di valori presenti nel bucket è 3.
- Bucket-3 varia da 160.446 a 234.67 : In questo intervallo, il numero totale di valori presenti nel bucket è 2.
Esempio 2:
Crea un istogramma con 2 bucket sull'RDD creato in precedenza.
importa pysparkda pyspark.sql importa SparkSession
da pyspark.rdd importa RDD
spark_app = SparkSession.builder.appName( 'linux' ).getOrCreate()
# Crea un RDD con 10 valori
Building_height =spark_app.sparkContext.parallelize([ 120,56 , 234,67 , 12.0 , 200,45 , 17.8 , 24 , 56 , 78 , 90 , 100 ])
stampa( 'Effettivo: ' ,altezza_edificio.collect())
# Specificando 2 secchi
Altezza_edificio.istogramma( 2 )
Produzione:
- Il bucket 1 va da 12,0 a 123,335. In questo intervallo, il numero totale di valori presenti nel bucket è 8.
- Il bucket 2 varia da 123,335 a 234,67: in questo intervallo, il numero totale di valori presenti nel bucket è 2.
Traccia l'istogramma su PySpark RDD specificando la dimensione di ciascun bucket
Nello scenario precedente, abbiamo passato i bucket alla funzione RDD.histogram(). Ora passiamo le dimensioni del bucket una dopo l'altra all'interno di un elenco e passiamo questo elenco come parametro a questa funzione. Assicurati di dover specificare almeno due bucket in ordine crescente/crescente e che non abbia valori duplicati.
Sintassi:
pyspark_RDD.histogram([intervallo di bucket...])In questo scenario, passiamo il numero di bucket (numero intero) inclusi nell'istogramma. Restituisce la tupla di elenchi che includono gli intervalli di bucket e le occorrenze dei valori corrispondenti nel seguente formato: ([intervalli di bucket...], [occorrenze di valori...]).
Esempio 1:
Creiamo un RDD denominato 'Building_height' con 10 valori e creiamo un istogramma con l'intervallo di valori bucker [0, 50, 100, 150, 200, 250].
importa pysparkda pyspark.sql importa SparkSession
da pyspark.rdd importa RDD
spark_app = SparkSession.builder.appName( 'linux' ).getOrCreate()
# Crea un RDD con 10 valori
Building_height =spark_app.sparkContext.parallelize([ 120,56 , 234,67 , 12.0 , 200,45 , 17.8 , 24 , 56 , 178 , 90 , 100 ])
stampa( 'Effettivo: ' ,altezza_edificio.collect())
# Specifica del secchio con dimensioni - [0,50,100,150,200,250]
Altezza_edificio.istogramma([ 0 , cinquanta , 100 , 150 , 200 , 250 ])
Produzione:
- Bucket 1: (da 0 a 50): i valori totali in questo bucket sono 3.
- Bucket 1: (da 50 a 100): i valori totali in questo bucket sono 2.
- Bucket 1: (da 100 a 150): i valori totali in questo bucket sono 2.
- Bucket 1: (da 150 a 200): i valori totali in questo bucket sono 2.
- Bucket 1: (da 200 a 250): i valori totali in questo bucket sono 2.
Esempio 2:
Crea un istogramma con l'intervallo di valori del bucket [0, 100, 200, 300].
importa pysparkda pyspark.sql importa SparkSession
da pyspark.rdd importa RDD
spark_app = SparkSession.builder.appName( 'linux' ).getOrCreate()
# Crea un RDD con 10 valori
Building_height =spark_app.sparkContext.parallelize([ 120,56 , 234,67 , 12.0 , 200,45 , 17.8 , 24 , 56 , 178 , 90 , 100 ])
stampa( 'Effettivo: ' ,altezza_edificio.collect())
# Specifica del bucket con dimensioni - [0,100,200,300]
Altezza_edificio.istogramma([ 0 , 100 , 200 , 300 ])
Produzione:
- Secchio 1: (da 0 a 100). Il valore totale in questo bucket è 5.
- Secchio 2: (da 100 a 200). Il valore totale in questo bucket è 3.
- Secchio 3: (da 200 a 300). Il valore totale in questo bucket è 2.
Conclusione
Abbiamo visto come creare istogrammi in PySpark su PySpark Pandas DataFrame e RDD. histogram() è la funzione utilizzata per ottenere l'istogramma sui dati RDD. Il plot.hist() viene utilizzato per visualizzare l'istogramma su PySpark Pandas DataFrame. Abbiamo discusso queste funzioni con esempi coprendo tutti i parametri.