Neste guia, veremos como plotar os dados do PySpark no histograma. Podemos ver dois cenários aqui. O histograma é criado no PySpark Pandas DataFrame e nos dados RDD. Para esses dois cenários, o PySpark fornece duas funções: pyspark.pandas.DataFrame.plot.hist() & pyspark.RDD.histogram.
Tema do conteúdo:
- Traçar histograma no PySpark Pandas DataFrame
- Plote o histograma no PySpark Pandas DataFrame com o parâmetro Bins
- Plote o histograma no PySpark RDD especificando o número do balde
- Plote o histograma no PySpark RDD especificando o tamanho de cada balde
Pyspark.pandas.DataFrame.plot.hist()
Neste cenário, o histograma é exibido como uma representação gráfica de dados que agrupa um intervalo de classes em colunas (do PySpark Pandas DataFrame) juntamente com o eixo x horizontal. O eixo y representa a contagem do número de ocorrências no PySpark Pandas DataFrame para cada coluna.
Sintaxe:
pyspark_pandas_DataFrame.plot.hist(bins,...)
Leva o número total de compartimentos como um parâmetro opcional que é um número inteiro e alguns argumentos de palavra-chave opcionais. Se os compartimentos não forem especificados para cada coluna, uma barra será criada.
Traçar histograma no PySpark Pandas DataFrame
Crie um DataFrame PySpark Pandas com 2 colunas com 4 registros. Plote o histograma sem passar nenhum parâmetro para a função plot.hist().
do pyspark importar pandaspyspark_pandas_dataframe=pandas.DataFrame({ 'Building_height' :[ 120,56 , 234,67 , 12,0 , 200,45 ], 'Área de construção' :[ 2 , 3 , 1 , 4 ]})
print(pyspark_pandas_dataframe)
# PySpark-Pandas histograma
pyspark_pandas_dataframe.plot.hist()
Saída:
Aqui, os nomes das colunas são “Building_height” e “Building_Area”.
Vejamos o Histograma:
O número total de linhas no DataFrame anterior é 4. Assim, 4 bins são criados.
Plote o histograma no PySpark Pandas DataFrame com o parâmetro Bins
Crie um DataFrame PySpark Pandas com 2 colunas com 4 registros. Plote o histograma sem passar nenhum parâmetro para a função plot.hist().
do pyspark importar pandaspyspark_pandas_dataframe=pandas.DataFrame({ 'Building_height' :[ 120,56 , 234,67 , 12,0 , 200,45 ], 'Área de construção' :[ 2 , 3 , 1 , 4 ]})
# Histograma PySpark-Pandas com 2 caixas
pyspark_pandas_dataframe.plot.hist(bins= 2 )
Saída:
Aqui, os nomes das colunas são “Building_height” e “Building_Area”.
Vejamos o histograma – vermelho refere-se a “Building_Area” e azul refere-se à coluna “Building_height”:
Conforme especificamos, apenas 2 caixas e 2 barras foram criadas. Quatro linhas são agrupadas em 2 baldes aqui.
Plote o histograma no PySpark RDD especificando o número do intervalo
Quando você está trabalhando com RDD, o histograma pode ser retornado na forma de uma tupla que inclui os baldes e os valores totais presentes em cada balde.
Sintaxe:
pyspark_RDD.histogram(baldes)Neste cenário, passamos o número de baldes (inteiro) que estão incluídos no Histograma. Ele retorna a tupla de listas que incluem os intervalos de bucket e as ocorrências de valor correspondentes no seguinte formato: ([intervalos de intervalo…], [ocorrências de valor…]).
Exemplo 1:
Vamos criar um RDD chamado “Building_height” com 10 valores e criar um histograma com 3 baldes.
importar pysparkde pyspark.sql importar SparkSession
de pyspark.rdd importar RDD
spark_app = SparkSession.builder.appName( 'linux' ).getOrCreate()
# Crie um RDD com 10 valores
Building_height =spark_app.sparkContext.parallelize([ 120,56 , 234,67 , 12,0 , 200,45 , 17.8 , 24 , 56 , 78 , 90 , 100 ])
imprimir( 'Real: ' ,Building_height.collect())
# Especificando 3 baldes
Building_height.histogram( 3 )
Saída:
- Bucket-1 varia de 12,0 a 86,223: nesse intervalo, o número total de valores presentes no bucket é 5.
- Bucket-2 varia de 86.223 a 160.446: neste intervalo, o número total de valores presentes no bucket é 3.
- Bucket-3 varia de 160,446 a 234,67: neste intervalo, o número total de valores presentes no bucket é 2.
Exemplo 2:
Crie um histograma com 2 baldes no RDD criado anteriormente.
importar pysparkde pyspark.sql importar SparkSession
de pyspark.rdd importar RDD
spark_app = SparkSession.builder.appName( 'linux' ).getOrCreate()
# Crie um RDD com 10 valores
Building_height =spark_app.sparkContext.parallelize([ 120,56 , 234,67 , 12,0 , 200,45 , 17.8 , 24 , 56 , 78 , 90 , 100 ])
imprimir( 'Real: ' ,Building_height.collect())
# Especificando 2 baldes
Building_height.histogram( 2 )
Saída:
- O intervalo 1 varia de 12,0 a 123,335. Nesse intervalo, o número total de valores presentes no bucket é 8.
- O intervalo 2 varia de 123,335 a 234,67: neste intervalo, o número total de valores presentes no intervalo é 2.
Plote o histograma no PySpark RDD especificando o tamanho de cada balde
No cenário anterior, passamos os baldes para a função RDD.histogram(). Agora, passamos os tamanhos dos buckets um após o outro dentro de uma lista e passamos essa lista como um parâmetro para essa função. Certifique-se de que precisamos especificar pelo menos dois baldes em ordem crescente/ascendente e não haverá valores duplicados.
Sintaxe:
pyspark_RDD.histogram([intervalos de intervalos…])Neste cenário, passamos o número de baldes (inteiro) que estão incluídos no histograma. Ele retorna a tupla de listas que incluem os intervalos de bucket e as ocorrências de valor correspondentes no seguinte formato: ([intervalos de intervalo…], [ocorrências de valor…]).
Exemplo 1:
Vamos criar um RDD chamado “Building_height” com 10 valores e criar um histograma com o intervalo de valores do Bucker [0, 50, 100, 150, 200, 250].
importar pysparkde pyspark.sql importar SparkSession
de pyspark.rdd importar RDD
spark_app = SparkSession.builder.appName( 'linux' ).getOrCreate()
# Crie um RDD com 10 valores
Building_height =spark_app.sparkContext.parallelize([ 120,56 , 234,67 , 12,0 , 200,45 , 17.8 , 24 , 56 , 178 , 90 , 100 ])
imprimir( 'Real: ' ,Building_height.collect())
# Especificando balde com tamanho - [0,50,100,150,200,250]
Building_height.histogram([ 0 , cinquenta , 100 , 150 , 200 , 250 ])
Saída:
- Balde 1: (0 a 50): os valores totais neste balde são 3.
- Balde 1: (50 a 100): os valores totais neste balde são 2.
- Balde 1: (100 a 150): os valores totais neste balde são 2.
- Balde 1: (150 a 200): os valores totais neste balde são 2.
- Balde 1: (200 a 250): os valores totais neste balde são 2.
Exemplo 2:
Crie um histograma com o intervalo de valores [0, 100, 200, 300].
importar pysparkde pyspark.sql importar SparkSession
de pyspark.rdd importar RDD
spark_app = SparkSession.builder.appName( 'linux' ).getOrCreate()
# Crie um RDD com 10 valores
Building_height =spark_app.sparkContext.parallelize([ 120,56 , 234,67 , 12,0 , 200,45 , 17.8 , 24 , 56 , 178 , 90 , 100 ])
imprimir( 'Real: ' ,Building_height.collect())
# Especificando balde com tamanho - [0,100,200,300]
Building_height.histogram([ 0 , 100 , 200 , 300 ])
Saída:
- Balde 1: (0 a 100). O valor total neste balde é 5.
- Balde 2: (100 a 200). O valor total neste balde é 3.
- Balde 3: (200 a 300). O valor total neste balde é 2.
Conclusão
Vimos como criar histogramas no PySpark no PySpark Pandas DataFrame e RDD. histogram() é a função usada para obter o histograma nos dados RDD. O plot.hist() é usado para exibir o histograma no PySpark Pandas DataFrame. Discutimos essas funções com exemplos cobrindo todos os parâmetros.