En aquesta guia, veurem com traçar les dades de PySpark a l'histograma. Aquí podem veure dos escenaris. L'histograma es crea a PySpark Pandas DataFrame i a dades RDD. Per a aquests dos escenaris, PySpark ofereix dues funcions: pyspark.pandas.DataFrame.plot.hist() i pyspark.RDD.histogram.
Tema de continguts:
- Traceu l'histograma al PySpark Pandas DataFrame
- Traceu l'histograma al PySpark Pandas DataFrame amb el paràmetre Bins
- Traceu l'histograma al PySpark RDD especificant el número de cub
- Traceu l'histograma al PySpark RDD especificant la mida de cada cub
Pyspark.pandas.DataFrame.plot.hist()
En aquest escenari, l'histograma es mostra com una representació gràfica de dades que agrupa una sèrie de classes en columnes (del PySpark Pandas DataFrame) juntament amb l'eix x horitzontal. L'eix Y representa el nombre d'ocurrències al PySpark Pandas DataFrame per a cada columna.
Sintaxi:
pyspark_pandas_DataFrame.plot.hist(bins,...)
Pren el nombre total de papereres com a paràmetre opcional que és un nombre enter i alguns arguments de paraula clau opcionals. Si no s'especifiquen les safates per a cada columna, es crea una barra.
Traceu l'histograma al PySpark Pandas DataFrame
Creeu un PySpark Pandas DataFrame amb 2 columnes amb 4 registres. Traceu l'histograma sense passar cap paràmetre a la funció plot.hist().
de pyspark import pandaspyspark_pandas_dataframe=pandas.DataFrame({ 'Alçada_edifici' :[ 120.56 , 234.67 , 12.0 , 200.45 ], 'Àrea_edifici' :[ 2 , 3 , 1 , 4 ]})
imprimir(pyspark_pandas_dataframe)
# Histograma PySpark-Pandas
pyspark_pandas_dataframe.plot.hist()
Sortida:
Aquí, els noms de les columnes són 'Building_height' i 'Building_Area'.
Vegem l'histograma:
El nombre total de files del DataFrame anterior és 4. Per tant, es creen 4 safates.
Traceu l'histograma al PySpark Pandas DataFrame amb el paràmetre Bins
Creeu un PySpark Pandas DataFrame amb 2 columnes amb 4 registres. Traceu l'histograma sense passar cap paràmetre a la funció plot.hist().
de pyspark import pandaspyspark_pandas_dataframe=pandas.DataFrame({ 'Alçada_edifici' :[ 120.56 , 234.67 , 12.0 , 200.45 ], 'Àrea_edifici' :[ 2 , 3 , 1 , 4 ]})
# Histograma PySpark-Pandas amb 2 contenidors
pyspark_pandas_dataframe.plot.hist(bins= 2 )
Sortida:
Aquí, els noms de les columnes són 'Building_height' i 'Building_Area'.
Mirem l'histograma: el vermell fa referència a 'Àrea_edifici' i el blau fa referència a la columna 'Altura_edifici':
Com hem especificat, només es van crear 2 contenidors i 2 barres. Quatre files s'emmagatzemen en 2 galledes aquí.
Traceu l'histograma al PySpark RDD especificant el número de cub
Quan esteu treballant amb RDD, l'histograma es pot tornar en forma de tupla que inclogui els dipòsits i els valors totals que hi ha a cada compartiment.
Sintaxi:
pyspark_RDD.histogram(cubs)En aquest escenari, passem el nombre de cubs (nombres) que s'inclouen a l'histograma. Retorna la tupla de llistes que inclouen els intervals de compartiment i les ocurrències de valors corresponents en el format següent: ([intervals de cub...], [ocurrències de valors...]).
Exemple 1:
Creem un RDD anomenat 'Building_height' amb 10 valors i creem un histograma amb 3 galledes.
importar pysparkdes de pyspark.sql importació SparkSession
des de pyspark.rdd importació RDD
spark_app = SparkSession.builder.appName( 'linux' ).getOrCreate()
# Creeu un RDD amb 10 valors
Alçada_edifici =spark_app.sparkContext.parallelize([ 120.56 , 234.67 , 12.0 , 200.45 , 17.8 , 24 , 56 , 78 , 90 , 100 ])
imprimir( 'Real:' ,Altura_edifici.collect())
# Especificant 3 galledes
alçada_edifici.histograma( 3 )
Sortida:
- Bucket-1 oscil·la entre 12,0 i 86,223 : en aquest interval, el nombre total de valors presents al cub és 5.
- Bucket-2 oscil·la entre 86.223 i 160.446 : en aquest interval, el nombre total de valors presents al cub és 3.
- Bucket-3 oscil·la entre 160,446 i 234,67 : en aquest interval, el nombre total de valors presents al cub és 2.
Exemple 2:
Creeu un histograma amb 2 cubs al RDD creat anteriorment.
importar pysparkdes de pyspark.sql importació SparkSession
des de pyspark.rdd importació RDD
spark_app = SparkSession.builder.appName( 'linux' ).getOrCreate()
# Creeu un RDD amb 10 valors
Alçada_edifici =spark_app.sparkContext.parallelize([ 120.56 , 234.67 , 12.0 , 200.45 , 17.8 , 24 , 56 , 78 , 90 , 100 ])
imprimir( 'Real:' ,Altura_edifici.collect())
# Especificant 2 galledes
alçada_edifici.histograma( 2 )
Sortida:
- El dipòsit 1 oscil·la entre 12,0 i 123,335. En aquest interval, el nombre total de valors que hi ha al cub és 8.
- El dipòsit 2 oscil·la entre 123,335 i 234,67: en aquest interval, el nombre total de valors que hi ha al dipòsit és 2.
Traceu l'histograma al PySpark RDD especificant la mida de cada cub
En l'escenari anterior, vam passar els cubs a la funció RDD.histogram(). Ara, passem les mides del cub una darrere l'altra dins d'una llista i passem aquesta llista com a paràmetre a aquesta funció. Assegureu-vos que hem d'especificar almenys dos compartiments en ordre creixent/creixent i que no tindran valors duplicats.
Sintaxi:
pyspark_RDD.histogram([intervals de cub...])En aquest escenari, passem el nombre de cubs (nombres enters) que s'inclouen a l'histograma. Retorna la tupla de llistes que inclouen els intervals de compartiment i les ocurrències de valors corresponents en el format següent: ([intervals de cub...], [ocurrències de valors...]).
Exemple 1:
Creem un RDD anomenat 'Building_height' amb 10 valors i creem un histograma amb l'interval de valors [0, 50, 100, 150, 200, 250].
importar pysparkdes de pyspark.sql importació SparkSession
des de pyspark.rdd importació RDD
spark_app = SparkSession.builder.appName( 'linux' ).getOrCreate()
# Creeu un RDD amb 10 valors
Alçada_edifici =spark_app.sparkContext.parallelize([ 120.56 , 234.67 , 12.0 , 200.45 , 17.8 , 24 , 56 , 178 , 90 , 100 ])
imprimir( 'Real:' ,Altura_edifici.collect())
# Especificació de la galleda amb la mida: [0,50,100,150,200,250]
Alçada_edifici.histograma([ 0 , 50 , 100 , 150 , 200 , 250 ])
Sortida:
- Dipòsit 1: (0 a 50): els valors totals d'aquest compartiment són 3.
- Dipòsit 1: (de 50 a 100): els valors totals d'aquest compartiment són 2.
- Dipòsit 1: (100 a 150): els valors totals d'aquest compartiment són 2.
- Dipòsit 1: (150 a 200): els valors totals d'aquest compartiment són 2.
- Dipòsit 1: (200 a 250): els valors totals d'aquest compartiment són 2.
Exemple 2:
Creeu un histograma amb l'interval de valors [0, 100, 200, 300].
importar pysparkdes de pyspark.sql importació SparkSession
des de pyspark.rdd importació RDD
spark_app = SparkSession.builder.appName( 'linux' ).getOrCreate()
# Creeu un RDD amb 10 valors
Alçada_edifici =spark_app.sparkContext.parallelize([ 120.56 , 234.67 , 12.0 , 200.45 , 17.8 , 24 , 56 , 178 , 90 , 100 ])
imprimir( 'Real:' ,Altura_edifici.collect())
# Especificació del cub amb la mida: [0.100.200.300]
Alçada_edifici.histograma([ 0 , 100 , 200 , 300 ])
Sortida:
- Cubell 1: (0 a 100). El valor total d'aquest cub és de 5.
- Cubell 2: (100 a 200). El valor total d'aquest cub és de 3.
- Cubell 3: (200 a 300). El valor total d'aquest cub és 2.
Conclusió
Hem vist com crear histogrames a PySpark a PySpark Pandas DataFrame i RDD. histogram() és la funció que s'utilitza per obtenir l'histograma a les dades RDD. El plot.hist() s'utilitza per mostrar l'histograma al PySpark Pandas DataFrame. Hem comentat aquestes funcions amb exemples cobrint tots els paràmetres.