Como plotar dados do PySpark no histograma

Como Plotar Dados Do Pyspark No Histograma



No PySpark, a visualização de dados é feita usando histograma e outras técnicas de plotagem. Isso ajuda a entender os engenheiros de Data Science com os dados em representação gráfica. O tempo é uma restrição importante para eles. Por essas visualizações, eles podem analisar os dados mais rapidamente quando comparados a outros formatos de dados, como texto/csv e outros.

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:







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 pandas

pyspark_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 pandas

pyspark_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 pyspark

de 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:

  1. Bucket-1 varia de 12,0 a 86,223: nesse intervalo, o número total de valores presentes no bucket é 5.
  2. Bucket-2 varia de 86.223 a 160.446: neste intervalo, o número total de valores presentes no bucket é 3.
  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 pyspark

de 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:

  1. O intervalo 1 varia de 12,0 a 123,335. Nesse intervalo, o número total de valores presentes no bucket é 8.
  2. 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 pyspark

de 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:

  1. Balde 1: (0 a 50): os valores totais neste balde são 3.
  2. Balde 1: (50 a 100): os valores totais neste balde são 2.
  3. Balde 1: (100 a 150): os valores totais neste balde são 2.
  4. Balde 1: (150 a 200): os valores totais neste balde são 2.
  5. 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 pyspark

de 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:

  1. Balde 1: (0 a 100). O valor total neste balde é 5.
  2. Balde 2: (100 a 200). O valor total neste balde é 3.
  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.