Ebben az útmutatóban látni fogjuk, hogyan kell ábrázolni a PySpark-adatokat a hisztogramon. Itt két forgatókönyvet láthatunk. A hisztogram a PySpark Pandas DataFrame-en és az RDD-adatokon jön létre. Ehhez a két forgatókönyvhöz a PySpark két funkciót biztosít: pyspark.pandas.DataFrame.plot.hist() és pyspark.RDD.histogram.
Tartalom témája:
- Nyomjon hisztogramot a PySpark Pandas DataFrame-en
- Nyomjon hisztogramot a PySpark Pandas DataFrame-en a Bins paraméterrel
- Nyomjon hisztogramot a PySpark RDD-n a vödör számának megadásával
- Nyomjon hisztogramot a PySpark RDD-n az egyes vödör méretének megadásával
Pyspark.pandas.DataFrame.plot.hist()
Ebben a forgatókönyvben a hisztogram az adatok grafikonszerű ábrázolásaként jelenik meg, amely osztályokat csoportosít oszlopokba (a PySpark Pandas DataFrame-ből) a vízszintes x-tengellyel együtt. Az y-tengely a PySpark Pandas DataFrame-ben az egyes oszlopok előfordulásának számát jelöli.
Szintaxis:
pyspark_pandas_DataFrame.plot.hist(bins,...)
A rekeszek teljes számát opcionális paraméternek tekinti, amely egy egész szám és néhány opcionális kulcsszó argumentum. Ha a rekeszek nincsenek megadva minden oszlophoz, egy sáv jön létre.
Nyomjon hisztogramot a PySpark Pandas DataFrame-en
Hozzon létre egy PySpark Pandas DataFrame-et, amely 2 oszlopból és 4 rekordból áll. Ábrázolja a hisztogramot anélkül, hogy paramétert adna át a plot.hist() függvénynek.
pyspark import pandáktólpyspark_pandas_dataframe=pandas.DataFrame({ 'Épületmagasság' :[ 120,56 , 234,67 , 12.0 , 200,45 ], 'Épületi_terület' :[ 2 , 3 , 1 , 4 ]})
print(pyspark_pandas_dataframe)
# PySpark-Pandas hisztogram
pyspark_pandas_dataframe.plot.hist()
Kimenet:
Itt az oszlopnevek „Épületmagasság” és „Épület_területe”.
Nézzük a hisztogramot:
A sorok teljes száma az előző DataFrame-ben 4. Tehát 4 bin jön létre.
Nyomjon hisztogramot a PySpark Pandas DataFrame-en a Bins paraméterrel
Hozzon létre egy PySpark Pandas DataFrame-et, amely 2 oszlopból és 4 rekordból áll. Ábrázolja a hisztogramot anélkül, hogy paramétert adna át a plot.hist() függvénynek.
pyspark import pandáktólpyspark_pandas_dataframe=pandas.DataFrame({ 'Épületmagasság' :[ 120,56 , 234,67 , 12.0 , 200,45 ], 'Épületi_terület' :[ 2 , 3 , 1 , 4 ]})
# PySpark-Pandas hisztogram 2 tálcával
pyspark_pandas_dataframe.plot.hist(bins= 2 )
Kimenet:
Itt az oszlopnevek „Épületmagasság” és „Épület_területe”.
Nézzük a hisztogramot – a piros a „Building_Area”, a kék pedig a „Building_height” oszlopra utal:
Ahogyan megadtuk, csak 2 rekesz és 2 sáv jött létre. Négy sor itt 2 vödörbe van összerakva.
Nyomjon hisztogramot a PySpark RDD-n a vödör számának megadásával
Amikor RDD-vel dolgozik, a hisztogram egy sor formájában adható vissza, amely tartalmazza az egyes gyűjtőkben található gyűjtőhelyeket és teljes értékeket.
Szintaxis:
pyspark_RDD.histogram(vödrök)Ebben a forgatókönyvben a hisztogramban szereplő csoportok számát (egész szám) adjuk át. Visszaadja a listák sorát, amelyek tartalmazzák a vödörtartományokat és a megfelelő értékek előfordulásait a következő formátumban: ([csoporttartományok…], [értékelőfordulások…]).
1. példa:
Hozzunk létre egy „Building_height” nevű RDD-t 10 értékkel, és hozzunk létre egy hisztogramot 3 gyűjtőrésszel.
import pysparka pyspark.sql-ből importálja a SparkSession-t
a pyspark.rdd import RDD-ből
spark_app = SparkSession.builder.appName( 'linux' ).getOrCreate()
# Hozzon létre egy RDD-t 10 értékkel
Building_height =spark_app.sparkContext.parallelise([ 120,56 , 234,67 , 12.0 , 200,45 , 17.8 , 24 , 56 , 78 , 90 , 100 ])
nyomtatás( 'Tényleges: ' ,Building_height.collect())
# 3 vödör megadása
Building_height.histogram( 3 )
Kimenet:
- Az 1. csoport 12,0 és 86,223 közötti tartományban van: Ebben a tartományban a csoportban lévő értékek száma összesen 5.
- A 2. csoport 86.223 és 160.446 közötti tartományban van: Ebben a tartományban a gyűjtőcsoportban található értékek teljes száma 3.
- A 3. csoport 160,446 és 234,67 közötti tartományban van: Ebben a tartományban a gyűjtőcsoportban található értékek teljes száma 2.
2. példa:
Hozzon létre egy hisztogramot 2 vödörrel a korábban létrehozott RDD-n.
import pysparka pyspark.sql-ből importálja a SparkSession-t
a pyspark.rdd import RDD-ből
spark_app = SparkSession.builder.appName( 'linux' ).getOrCreate()
# Hozzon létre egy RDD-t 10 értékkel
Building_height =spark_app.sparkContext.parallelise([ 120,56 , 234,67 , 12.0 , 200,45 , 17.8 , 24 , 56 , 78 , 90 , 100 ])
nyomtatás( 'Tényleges: ' ,Building_height.collect())
# 2 vödör megadása
Building_height.histogram( 2 )
Kimenet:
- Az 1. csoport 12,0 és 123,335 között van. Ebben a tartományban a gyűjtőcsoportban található értékek teljes száma 8.
- A 2. csoport 123,335 és 234,67 között van: Ebben a tartományban a gyűjtőcsoportban található értékek teljes száma 2.
Nyomjon hisztogramot a PySpark RDD-n az egyes vödör méretének megadásával
Az előző forgatókönyvben a kockákat az RDD.histogram() függvénynek adtuk át. Most egymás után adjuk át a vödörméreteket egy listán belül, és ezt a listát paraméterként adjuk át ennek a függvénynek. Győződjön meg arról, hogy legalább két gyűjtőcsoportot meg kell adnunk növekvő/növekvő sorrendben, és nem lesznek ismétlődő értékek.
Szintaxis:
pyspark_RDD.histogram([csoporttartományok…])Ebben a forgatókönyvben átadjuk a hisztogramban szereplő csoportok számát (egész szám). Visszaadja a listák sorát, amelyek tartalmazzák a vödörtartományokat és a megfelelő értékek előfordulásait a következő formátumban: ([csoporttartományok…], [értékelőfordulások…]).
1. példa:
Hozzunk létre egy „Building_height” nevű RDD-t 10 értékkel, és hozzunk létre egy hisztogramot a bucker értéktartománnyal [0, 50, 100, 150, 200, 250].
import pysparka pyspark.sql-ből importálja a SparkSession-t
a pyspark.rdd import RDD-ből
spark_app = SparkSession.builder.appName( 'linux' ).getOrCreate()
# Hozzon létre egy RDD-t 10 értékkel
Building_height =spark_app.sparkContext.parallelise([ 120,56 , 234,67 , 12.0 , 200,45 , 17.8 , 24 , 56 , 178 , 90 , 100 ])
nyomtatás( 'Tényleges: ' ,Building_height.collect())
# Vödör megadása mérettel - [0,50,100,150,200,250]
Building_height.histogram([ 0 , ötven , 100 , 150 , 200 , 250 ])
Kimenet:
- 1. csoport: (0-tól 50-ig) : Ebben a csoportban a teljes érték 3.
- 1. csoport: (50-től 100-ig) : Ebben a csoportban a teljes érték 2.
- 1. csoport: (100-tól 150-ig): Ebben a csoportban a teljes érték 2.
- 1. csoport: (150-től 200-ig): Ebben a csoportban a teljes érték 2.
- 1. csoport: (200-tól 250-ig): Ebben a csoportban a teljes érték 2.
2. példa:
Hozzon létre egy hisztogramot a [0, 100, 200, 300] értéktartományokkal.
import pysparka pyspark.sql-ből importálja a SparkSession-t
a pyspark.rdd import RDD-ből
spark_app = SparkSession.builder.appName( 'linux' ).getOrCreate()
# Hozzon létre egy RDD-t 10 értékkel
Building_height =spark_app.sparkContext.parallelise([ 120,56 , 234,67 , 12.0 , 200,45 , 17.8 , 24 , 56 , 178 , 90 , 100 ])
nyomtatás( 'Tényleges: ' ,Building_height.collect())
# Vödör megadása mérettel - [0,100,200,300]
Building_height.histogram([ 0 , 100 , 200 , 300 ])
Kimenet:
- 1. vödör: (0-tól 100-ig). Ebben a vödörben a teljes érték 5.
- 2. vödör: (100–200). A teljes érték ebben a vödörben 3.
- 3. vödör: (200-300). Ebben a vödörben a teljes érték 2.
Következtetés
Láttuk, hogyan lehet hisztogramokat létrehozni a PySparkban PySpark Pandas DataFrame és RDD rendszeren. A hisztogram() az a függvény, amely az RDD adatok hisztogramjának lekérésére szolgál. A plot.hist() a hisztogram megjelenítésére szolgál a PySpark Pandas DataFrame-en. Ezeket a függvényeket példákon keresztül tárgyaltuk az összes paraméterre kiterjedően.