En esta guía, veremos cómo trazar los datos de PySpark en el histograma. Podemos ver dos escenarios aquí. El histograma se crea en PySpark Pandas DataFrame y en datos RDD. Para estos dos escenarios, PySpark proporciona dos funciones: pyspark.pandas.DataFrame.plot.hist() & pyspark.RDD.histogram.
Tema de contenidos:
- Trazar histograma en PySpark Pandas DataFrame
- Trazar histograma en PySpark Pandas DataFrame con el parámetro Bins
- Trazar el histograma en PySpark RDD especificando el número de cubeta
- Trazar histograma en PySpark RDD especificando el tamaño de cada cubeta
Pyspark.pandas.DataFrame.plot.hist()
En este escenario, el histograma se muestra como una representación gráfica de datos que agrupa un rango de clases en columnas (desde PySpark Pandas DataFrame) junto con el eje x horizontal. El eje Y representa el número de ocurrencias en PySpark Pandas DataFrame para cada columna.
Sintaxis:
pyspark_pandas_DataFrame.plot.hist(contenedores,...)
Toma el número total de contenedores como un parámetro opcional que es un número entero y algunos argumentos de palabras clave opcionales. Si no se especifican los contenedores para cada columna, se crea una barra.
Trazar histograma en PySpark Pandas DataFrame
Cree un marco de datos PySpark Pandas que tenga 2 columnas con 4 registros. Trace el histograma sin pasar ningún parámetro a la función plot.hist().
de pyspark importar pandaspyspark_pandas_dataframe=pandas.DataFrame({ 'Edificio_altura' :[ 120.56 , 234.67 , 12.0 , 200.45 ], 'Área de construcción' :[ 2 , 3 , 1 , 4 ]})
imprimir (pyspark_pandas_dataframe)
# histograma PySpark-Pandas
pyspark_pandas_dataframe.plot.hist()
Producción:
Aquí, los nombres de las columnas son 'Building_height' y 'Building_Area'.
Veamos el histograma:
El número total de filas en el DataFrame anterior es 4. Por lo tanto, se crean 4 contenedores.
Trazar histograma en PySpark Pandas DataFrame con el parámetro Bins
Cree un marco de datos PySpark Pandas que tenga 2 columnas con 4 registros. Trace el histograma sin pasar ningún parámetro a la función plot.hist().
de pyspark importar pandaspyspark_pandas_dataframe=pandas.DataFrame({ 'Edificio_altura' :[ 120.56 , 234.67 , 12.0 , 200.45 ], 'Área de construcción' :[ 2 , 3 , 1 , 4 ]})
# Histograma PySpark-Pandas con 2 contenedores
pyspark_pandas_dataframe.plot.hist(contenedores= 2 )
Producción:
Aquí, los nombres de las columnas son 'Building_height' y 'Building_Area'.
Veamos el histograma: el rojo se refiere a 'Building_Area' y el azul se refiere a la columna 'Building_height':
Como especificamos, solo se crearon 2 bins y 2 barras. Cuatro filas se agrupan en 2 cubos aquí.
Trazar histograma en PySpark RDD especificando el número de depósito
Cuando trabaja con RDD, el histograma se puede devolver en forma de tupla que incluye los depósitos y los valores totales que están presentes en cada depósito.
Sintaxis:
pyspark_RDD.histogram(cubos)En este escenario, pasamos el número de cubos (entero) que se incluyen en el histograma. Devuelve la tupla de listas que incluyen los rangos de depósito y las ocurrencias de valores correspondientes en el siguiente formato: ([intervalos de depósitos…], [apariciones de valores…]).
Ejemplo 1:
Vamos a crear un RDD llamado 'Building_height' con 10 valores y crearemos un histograma con 3 cubos.
importar pysparkdesde pyspark.sql importar SparkSession
desde pyspark.rdd importar RDD
spark_app = SparkSession.builder.appName( 'linux' ).getOrCreate()
# Crear un RDD con 10 valores
Building_height =spark_app.sparkContext.parallelize([ 120.56 , 234.67 , 12.0 , 200.45 , 17.8 , 24 , 56 , 78 , 90 , 100 ])
imprimir( 'Actual: ' ,Altura_del_edificio.recoger())
# Especificando 3 cubos
Edificio_altura.histograma( 3 )
Producción:
- El cubo-1 varía de 12,0 a 86,223: en este rango, el número total de valores presentes en el cubo es 5.
- El cubo-2 va de 86,223 a 160,446: en este rango, el número total de valores presentes en el cubo es 3.
- El cubo-3 varía de 160,446 a 234,67: en este rango, el número total de valores presentes en el cubo es 2.
Ejemplo 2:
Cree un histograma con 2 cubos en el RDD creado anteriormente.
importar pysparkdesde pyspark.sql importar SparkSession
desde pyspark.rdd importar RDD
spark_app = SparkSession.builder.appName( 'linux' ).getOrCreate()
# Crear un RDD con 10 valores
Building_height =spark_app.sparkContext.parallelize([ 120.56 , 234.67 , 12.0 , 200.45 , 17.8 , 24 , 56 , 78 , 90 , 100 ])
imprimir( 'Actual: ' ,Altura_del_edificio.recoger())
# Especificando 2 cubos
Edificio_altura.histograma( 2 )
Producción:
- El cubo 1 varía de 12,0 a 123,335. En este rango, el número total de valores que están presentes en el cubo es 8.
- El cubo 2 va de 123,335 a 234,67: en este rango, el número total de valores que están presentes en el cubo es 2.
Trazar histograma en PySpark RDD especificando el tamaño de cada cubeta
En el escenario anterior, pasamos los cubos a la función RDD.histogram(). Ahora, pasamos los tamaños de cubo uno tras otro dentro de una lista y pasamos esta lista como parámetro a esta función. Asegúrese de que necesitamos especificar al menos dos cubos en orden creciente/ascendente y no tendrá valores duplicados.
Sintaxis:
pyspark_RDD.histogram([rango de depósitos...])En este escenario, pasamos el número de cubos (entero) que se incluyen en el histograma. Devuelve la tupla de listas que incluyen los rangos de depósito y las ocurrencias de valores correspondientes en el siguiente formato: ([intervalos de depósitos…], [apariciones de valores…]).
Ejemplo 1:
Vamos a crear un RDD llamado 'Building_height' con 10 valores y crear un histograma con el rango de valores de Bucker [0, 50, 100, 150, 200, 250].
importar pysparkdesde pyspark.sql importar SparkSession
desde pyspark.rdd importar RDD
spark_app = SparkSession.builder.appName( 'linux' ).getOrCreate()
# Crear un RDD con 10 valores
Building_height =spark_app.sparkContext.parallelize([ 120.56 , 234.67 , 12.0 , 200.45 , 17.8 , 24 , 56 , 178 , 90 , 100 ])
imprimir( 'Actual: ' ,Altura_del_edificio.recoger())
# Especificando depósito con tamaño - [0,50,100,150,200,250]
Building_height.histogram([ 0 , 50 , 100 , 150 , 200 , 250 ])
Producción:
- Cubo 1: (0 a 50): los valores totales en este cubo son 3.
- Cubo 1: (50 a 100): los valores totales en este cubo son 2.
- Cubo 1: (100 a 150): los valores totales en este cubo son 2.
- Cubo 1: (150 a 200): los valores totales en este cubo son 2.
- Cubo 1: (200 a 250): los valores totales en este cubo son 2.
Ejemplo 2:
Cree un histograma con el rango de valores del depósito [0, 100, 200, 300].
importar pysparkdesde pyspark.sql importar SparkSession
desde pyspark.rdd importar RDD
spark_app = SparkSession.builder.appName( 'linux' ).getOrCreate()
# Crear un RDD con 10 valores
Building_height =spark_app.sparkContext.parallelize([ 120.56 , 234.67 , 12.0 , 200.45 , 17.8 , 24 , 56 , 178 , 90 , 100 ])
imprimir( 'Actual: ' ,Altura_del_edificio.recoger())
# Especificando depósito con tamaño - [0,100,200,300]
Building_height.histogram([ 0 , 100 , 200 , 300 ])
Producción:
- Cubo 1: (0 a 100). El valor total en este cubo es 5.
- Cubo 2: (100 a 200). El valor total en este cubo es 3.
- Cubo 3: (200 a 300). El valor total en este cubo es 2.
Conclusión
Hemos visto cómo crear histogramas en PySpark en PySpark Pandas DataFrame y RDD. histogram() es la función que se utiliza para obtener el histograma de los datos RDD. El plot.hist() se usa para mostrar el histograma en PySpark Pandas DataFrame. Discutimos estas funciones con ejemplos cubriendo todos los parámetros.