V tejto príručke uvidíme, ako vykresliť údaje PySpark na histograme. Môžeme tu vidieť dva scenáre. Histogram sa vytvára na PySpark Pandas DataFrame a na dátach RDD. Pre tieto dva scenáre poskytuje PySpark dve funkcie: pyspark.pandas.DataFrame.plot.hist() & pyspark.RDD.histogram.
Téma obsahu:
- Nakreslite histogram na PySpark Pandas DataFrame
- Vyneste histogram do dátového rámca PySpark Pandas s parametrom Bins
- Nakreslite histogram na PySpark RDD zadaním čísla vedra
- Nakreslite histogram na PySpark RDD zadaním veľkosti každého vedra
Pyspark.pandas.DataFrame.plot.hist()
V tomto scenári sa histogram zobrazuje ako grafová reprezentácia údajov, ktorá zoskupuje rozsah tried do stĺpcov (z dátového rámca PySpark Pandas) spolu s horizontálnou osou x. Os y predstavuje počet výskytov v dátovom rámci PySpark Pandas pre každý stĺpec.
Syntax:
pyspark_pandas_DataFrame.plot.hist(bins,...)
Berie celkový počet zásobníkov ako voliteľný parameter, ktorým je celé číslo a niektoré voliteľné argumenty kľúčových slov. Ak nie sú zásobníky špecifikované pre každý stĺpec, vytvorí sa pruh.
Nakreslite histogram na PySpark Pandas DataFrame
Vytvorte PySpark Pandas DataFrame s 2 stĺpcami so 4 záznamami. Nakreslite histogram bez odovzdania akéhokoľvek parametra funkcii plot.hist().
z pyspark import pandypyspark_pandas_dataframe=pandas.DataFrame({ 'výška_budovy' :[ 120,56 , 234,67 , 12.0 , 200,45 ], 'Building_Area' :[ 2 , 3 , 1 , 4 ]})
print(pyspark_pandas_dataframe)
# Histogram PySpark-Pandas
pyspark_pandas_dataframe.plot.hist()
Výkon:
Tu sú názvy stĺpcov „Výška_budovy“ a „Oblasť_budovy“.
Pozrime sa na histogram:
Celkový počet riadkov v predchádzajúcom DataFrame je 4. Takže sa vytvoria 4 zásobníky.
Vyneste histogram do dátového rámca PySpark Pandas s parametrom Bins
Vytvorte PySpark Pandas DataFrame s 2 stĺpcami so 4 záznamami. Nakreslite histogram bez odovzdania akéhokoľvek parametra funkcii plot.hist().
z pyspark import pandypyspark_pandas_dataframe=pandas.DataFrame({ 'výška_budovy' :[ 120,56 , 234,67 , 12.0 , 200,45 ], 'Building_Area' :[ 2 , 3 , 1 , 4 ]})
# Histogram PySpark-Pandas s 2 priehradkami
pyspark_pandas_dataframe.plot.hist(bins= 2 )
Výkon:
Tu sú názvy stĺpcov „Výška_budovy“ a „Oblasť_budovy“.
Pozrime sa na histogram – červená označuje „Oblasť budovy“ a modrá označuje stĺpec „Výška budovy“:
Ako sme upresnili, vznikli len 2 zásobníky a 2 tyče. Štyri riadky sú tu spojené do 2 vedier.
Nakreslite histogram na PySpark RDD zadaním čísla vedra
Keď pracujete s RDD, histogram sa môže vrátiť vo forme n-tice, ktorá obsahuje segmenty a celkové hodnoty, ktoré sú prítomné v každom segmente.
Syntax:
pyspark_RDD.histogram(buckets)V tomto scenári odovzdáme počet segmentov (celé číslo), ktoré sú zahrnuté v histograme. Vráti n-ticu zoznamov, ktoré obsahujú rozsahy segmentov a zodpovedajúce výskyty hodnôt v nasledujúcom formáte: ([rozsahy segmentov…], [výskyty hodnôt…]).
Príklad 1:
Vytvorme RDD s názvom „Building_height“ s 10 hodnotami a vytvorte histogram s 3 vedrami.
importovať pysparkz pyspark.sql importujte SparkSession
z pyspark.rdd importujte RDD
spark_app = SparkSession.builder.appName( 'linux' ).getOrCreate()
# Vytvorte RDD s 10 hodnotami
Building_height =spark_app.sparkContext.parallelize([ 120,56 , 234,67 , 12.0 , 200,45 , 17.8 , 24 , 56 , 78 , 90 , 100 ])
vytlačiť ( 'Skutočné: ' ,Výška_budovy.collect())
# Určenie 3 vedier
Building_height.histogram( 3 )
Výkon:
- Segment 1 sa pohybuje od 12,0 do 86,223 : V tomto rozsahu je celkový počet hodnôt prítomných v segmente 5.
- Segment-2 sa pohybuje od 86,223 do 160,446 : V tomto rozsahu je celkový počet hodnôt prítomných v segmente 3.
- Segment 3 sa pohybuje od 160,446 do 234,67 : V tomto rozsahu je celkový počet hodnôt prítomných v segmente 2.
Príklad 2:
Vytvorte histogram s 2 vedrami na predtým vytvorenom RDD.
importovať pysparkz pyspark.sql importujte SparkSession
z pyspark.rdd importujte RDD
spark_app = SparkSession.builder.appName( 'linux' ).getOrCreate()
# Vytvorte RDD s 10 hodnotami
Building_height =spark_app.sparkContext.parallelize([ 120,56 , 234,67 , 12.0 , 200,45 , 17.8 , 24 , 56 , 78 , 90 , 100 ])
vytlačiť ( 'Skutočné: ' ,Výška_budovy.collect())
# Určenie 2 vedier
Building_height.histogram( 2 )
Výkon:
- Vedro 1 sa pohybuje od 12,0 do 123,335. V tomto rozsahu je celkový počet hodnôt prítomných v segmente 8.
- Segment 2 sa pohybuje od 123,335 do 234,67: V tomto rozsahu je celkový počet hodnôt prítomných v segmente 2.
Nakreslite histogram na PySpark RDD zadaním veľkosti každého vedra
V predchádzajúcom scenári sme vedrá odovzdali funkcii RDD.histogram(). Teraz odovzdávame veľkosti segmentov jednu po druhej v rámci zoznamu a odovzdávame tento zoznam ako parameter tejto funkcii. Uistite sa, že musíme zadať aspoň dva segmenty v rastúcom/vzostupnom poradí a že nebudú mať duplicitné hodnoty.
Syntax:
pyspark_RDD.histogram([rozsahy segmentov…])V tomto scenári odovzdávame počet segmentov (celé číslo), ktoré sú zahrnuté v histograme. Vráti n-ticu zoznamov, ktoré obsahujú rozsahy segmentov a zodpovedajúce výskyty hodnôt v nasledujúcom formáte: ([rozsahy segmentov…], [výskyty hodnôt…]).
Príklad 1:
Vytvorme RDD s názvom „Building_height“ s 10 hodnotami a vytvorte histogram s rozsahom hodnôt [0, 50, 100, 150, 200, 250].
importovať pysparkz pyspark.sql importujte SparkSession
z pyspark.rdd importujte RDD
spark_app = SparkSession.builder.appName( 'linux' ).getOrCreate()
# Vytvorte RDD s 10 hodnotami
Building_height =spark_app.sparkContext.parallelize([ 120,56 , 234,67 , 12.0 , 200,45 , 17.8 , 24 , 56 , 178 , 90 , 100 ])
vytlačiť ( 'Skutočné: ' ,Výška_budovy.collect())
# Určenie vedra s veľkosťou - [0,50,100,150,200,250]
Building_height.histogram([ 0 , päťdesiat , 100 , 150 , 200 , 250 ])
Výkon:
- Segment 1: (0 až 50) : Celkové hodnoty v tomto segmente sú 3.
- Segment 1: (50 až 100) : Celkové hodnoty v tomto segmente sú 2.
- Segment 1: (100 až 150) : Celkové hodnoty v tomto segmente sú 2.
- Segment 1: (150 až 200) : Celkové hodnoty v tomto segmente sú 2.
- Segment 1: (200 až 250) : Celkové hodnoty v tomto segmente sú 2.
Príklad 2:
Vytvorte histogram s rozsahom hodnôt [0, 100, 200, 300].
importovať pysparkz pyspark.sql importujte SparkSession
z pyspark.rdd importujte RDD
spark_app = SparkSession.builder.appName( 'linux' ).getOrCreate()
# Vytvorte RDD s 10 hodnotami
Building_height =spark_app.sparkContext.parallelize([ 120,56 , 234,67 , 12.0 , 200,45 , 17.8 , 24 , 56 , 178 , 90 , 100 ])
vytlačiť ( 'Skutočné: ' ,Výška_budovy.collect())
# Určenie vedra s veľkosťou - [0,100,200,300]
Building_height.histogram([ 0 , 100 , 200 , 300 ])
Výkon:
- Vedro 1: (0 až 100). Celková hodnota v tomto segmente je 5.
- Vedro 2: (100 až 200). Celková hodnota v tomto segmente je 3.
- Vedro 3: (200 až 300). Celková hodnota v tomto segmente je 2.
Záver
Videli sme, ako vytvoriť histogramy v PySpark na PySpark Pandas DataFrame a RDD. histogram() je funkcia, ktorá sa používa na získanie histogramu údajov RDD. Plot.hist() sa používa na zobrazenie histogramu na PySpark Pandas DataFrame. Tieto funkcie sme prediskutovali na príkladoch, pričom sme pokryli všetky parametre.