V této příručce uvidíme, jak vykreslit data PySpark na histogramu. Můžeme zde vidět dva scénáře. Histogram je vytvořen na PySpark Pandas DataFrame a na datech RDD. Pro tyto dva scénáře poskytuje PySpark dvě funkce: pyspark.pandas.DataFrame.plot.hist() & pyspark.RDD.histogram.
Téma obsahu:
- Vyneste histogram na PySpark Pandas DataFrame
- Vyneste histogram do datového rámce PySpark Pandas s parametrem Bins
- Vyneste histogram na PySpark RDD zadáním čísla bucketu
- Vyneste histogram na PySpark RDD zadáním velikosti každého segmentu
Pyspark.pandas.DataFrame.plot.hist()
V tomto scénáři je histogram zobrazen jako grafová reprezentace dat, která seskupuje řadu tříd do sloupců (z PySpark Pandas DataFrame) spolu s horizontální osou x. Osa y představuje počet výskytů v datovém rámci PySpark Pandas pro každý sloupec.
Syntax:
pyspark_pandas_DataFrame.plot.hist(bins,...)
Jako volitelný parametr bere celkový počet přihrádek, což je celé číslo a některé volitelné argumenty klíčových slov. Pokud nejsou přihrádky specifikovány pro každý sloupec, vytvoří se pruh.
Vyneste histogram na PySpark Pandas DataFrame
Vytvořte PySpark Pandas DataFrame se 2 sloupci se 4 záznamy. Vykreslete histogram bez předání jakéhokoli parametru funkci plot.hist().
z pyspark importovat 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ýstup:
Zde jsou názvy sloupců „Výška_budovy“ a „Oblast_budovy“.
Podívejme se na histogram:
Celkový počet řádků v předchozím DataFrame je 4. Jsou tedy vytvořeny 4 přihrádky.
Vyneste histogram do datového rámce PySpark Pandas s parametrem Bins
Vytvořte PySpark Pandas DataFrame se 2 sloupci se 4 záznamy. Vykreslete histogram bez předání jakéhokoli parametru funkci plot.hist().
z pyspark importovat 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 se 2 přihrádkami
pyspark_pandas_dataframe.plot.hist(bins= 2 )
Výstup:
Zde jsou názvy sloupců „Výška_budovy“ a „Oblast_budovy“.
Podívejme se na histogram – červená odkazuje na „Oblast_budovy“ a modrá na sloupec „Výška_budovy“:
Jak jsme upřesnili, vznikly pouze 2 přihrádky a 2 tyče. Čtyři řady jsou zde sváženy do 2 kbelíků.
Vyneste histogram na PySpark RDD zadáním čísla bucketu
Když pracujete s RDD, histogram lze vrátit ve formě n-tice, která obsahuje segmenty a celkové hodnoty, které jsou přítomny v každém segmentu.
Syntax:
pyspark_RDD.histogram(buckets)V tomto scénáři předáme počet segmentů (celé číslo), které jsou zahrnuty v histogramu. Vrátí n-tici seznamů, které obsahují rozsahy segmentů a odpovídající výskyty hodnot v následujícím formátu: ([rozsahy segmentů…], [výskyty hodnot…]).
Příklad 1:
Vytvořme RDD s názvem „Building_height“ s 10 hodnotami a vytvořte histogram se 3 segmenty.
importovat pysparkz pyspark.sql importujte SparkSession
z pyspark.rdd importujte RDD
spark_app = SparkSession.builder.appName( 'linux' ).getOrCreate()
# Vytvořte 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 ])
tisk( 'Skutečný:' ,Výška_budovy.collect())
# Určení 3 kbelíků
Building_height.histogram( 3 )
Výstup:
- Segment-1 se pohybuje od 12,0 do 86,223: V tomto rozsahu je celkový počet hodnot přítomných v segmentu 5.
- Segment-2 se pohybuje od 86,223 do 160,446: V tomto rozsahu je celkový počet hodnot přítomných v segmentu 3.
- Segment 3 se pohybuje od 160,446 do 234,67 : V tomto rozsahu je celkový počet hodnot přítomných v segmentu 2.
Příklad 2:
Vytvořte histogram se 2 kbelíky na dříve vytvořeném RDD.
importovat pysparkz pyspark.sql importujte SparkSession
z pyspark.rdd importujte RDD
spark_app = SparkSession.builder.appName( 'linux' ).getOrCreate()
# Vytvořte 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 ])
tisk( 'Skutečný:' ,Výška_budovy.collect())
# Určení 2 kbelíků
Building_height.histogram( 2 )
Výstup:
- Segment 1 se pohybuje od 12,0 do 123,335. V tomto rozsahu je celkový počet hodnot přítomných v segmentu 8.
- Segment 2 se pohybuje od 123,335 do 234,67: V tomto rozsahu je celkový počet hodnot přítomných v segmentu 2.
Vyneste histogram na PySpark RDD zadáním velikosti každého segmentu
V předchozím scénáři jsme předali kbelíky funkci RDD.histogram(). Nyní předáme velikosti segmentů jednu po druhé uvnitř seznamu a předáme tento seznam jako parametr této funkci. Ujistěte se, že musíme zadat alespoň dva segmenty ve vzestupném/vzestupném pořadí a nebude mít duplicitní hodnoty.
Syntax:
pyspark_RDD.histogram([rozsahy segmentů…])V tomto scénáři předáme počet segmentů (celé číslo), které jsou zahrnuty v histogramu. Vrátí n-tici seznamů, které obsahují rozsahy segmentů a odpovídající výskyty hodnot v následujícím formátu: ([rozsahy segmentů…], [výskyty hodnot…]).
Příklad 1:
Vytvořme RDD s názvem „Building_height“ s 10 hodnotami a vytvořte histogram s rozsahem hodnot [0, 50, 100, 150, 200, 250].
importovat pysparkz pyspark.sql importujte SparkSession
z pyspark.rdd importujte RDD
spark_app = SparkSession.builder.appName( 'linux' ).getOrCreate()
# Vytvořte 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 ])
tisk( 'Skutečný:' ,Výška_budovy.collect())
# Určení kbelíku s velikostí - [0,50,100,150,200,250]
Building_height.histogram([ 0 , padesáti , 100 , 150 , 200 , 250 ])
Výstup:
- Segment 1: (0 až 50) : Celkové hodnoty v tomto segmentu jsou 3.
- Segment 1: (50 až 100) : Celkové hodnoty v tomto segmentu jsou 2.
- Segment 1: (100 až 150) : Celkové hodnoty v tomto segmentu jsou 2.
- Segment 1: (150 až 200) : Celkové hodnoty v tomto segmentu jsou 2.
- Segment 1: (200 až 250) : Celkové hodnoty v tomto segmentu jsou 2.
Příklad 2:
Vytvořte histogram s rozsahem hodnot [0, 100, 200, 300].
importovat pysparkz pyspark.sql importujte SparkSession
z pyspark.rdd importujte RDD
spark_app = SparkSession.builder.appName( 'linux' ).getOrCreate()
# Vytvořte 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 ])
tisk( 'Skutečný:' ,Výška_budovy.collect())
# Určení kbelíku s velikostí - [0,100,200,300]
Building_height.histogram([ 0 , 100 , 200 , 300 ])
Výstup:
- Kbelík 1: (0 až 100). Celková hodnota v tomto segmentu je 5.
- Kbelík 2: (100 až 200). Celková hodnota v tomto segmentu je 3.
- Kbelík 3: (200 až 300). Celková hodnota v tomto segmentu je 2.
Závěr
Viděli jsme, jak vytvářet histogramy v PySpark na PySpark Pandas DataFrame a RDD. histogram() je funkce, která se používá k získání histogramu na datech RDD. Plot.hist() se používá k zobrazení histogramu na PySpark Pandas DataFrame. Tyto funkce jsme probrali na příkladech a pokryli jsme všechny parametry.