Hoe PySpark-gegevens op histogram te plotten

Hoe Pyspark Gegevens Op Histogram Te Plotten



In PySpark wordt datavisualisatie gedaan met behulp van histogram en andere plottechnieken. Dit helpt de Data Science-ingenieurs te begrijpen met de gegevens in grafische weergave. Tijd is voor hen een belangrijke beperking. Door deze visualisaties kunnen ze de gegevens sneller analyseren in vergelijking met andere gegevensindelingen zoals tekst/csv en andere.

In deze gids zullen we zien hoe de PySpark-gegevens op een histogram kunnen worden geplot. We zien hier twee scenario's. Histogram wordt gemaakt op PySpark Panda's DataFrame en op RDD-gegevens. Voor deze twee scenario's biedt PySpark twee functies: pyspark.pandas.DataFrame.plot.hist() & pyspark.RDD.histogram.

Onderwerp van de inhoud:







Pyspark.pandas.DataFrame.plot.hist()

In dit scenario wordt het histogram weergegeven als een grafiekachtige weergave van gegevens die een reeks klassen in kolommen (van het PySpark Panda's DataFrame) samen met de horizontale x-as opdeelt. De y-as vertegenwoordigt het aantal keren dat het voorkomt in het PySpark Pandas DataFrame voor elke kolom.



Syntaxis:



pyspark_pandas_DataFrame.plot.hist(bakken,...)

Het neemt het totale aantal bins als een optionele parameter die een geheel getal is en enkele optionele trefwoordargumenten. Als de bakken niet voor elke kolom zijn opgegeven, wordt er een balk gemaakt.





Plot histogram op het PySpark Pandas DataFrame

Maak een PySpark Pandas DataFrame met 2 kolommen met 4 records. Plot het histogram zonder enige parameter door te geven aan de functie plot.hist().

van pyspark import panda's

pyspark_pandas_dataframe=pandas.DataFrame({ 'Gebouw_hoogte' :[ 120,56 , 234,67 , 12.0 , 200,45 ], 'Bouwgebied' :[ 2 , 3 , 1 , 4 ]})

print(pyspark_pandas_dataframe)

# PySpark-Pandas-histogram

pyspark_pandas_dataframe.plot.hist()

Uitgang:



Hier zijn de kolomnamen 'Building_height' en 'Building_Area'.

Laten we naar het histogram kijken:

Het totale aantal rijen in het vorige DataFrame is 4. Er worden dus 4 bakken gemaakt.

Plot histogram op het PySpark Pandas DataFrame met de Bins-parameter

Maak een PySpark Pandas DataFrame met 2 kolommen met 4 records. Plot het histogram zonder enige parameter door te geven aan de functie plot.hist().

van pyspark import panda's

pyspark_pandas_dataframe=pandas.DataFrame({ 'Gebouw_hoogte' :[ 120,56 , 234,67 , 12.0 , 200,45 ], 'Bouwgebied' :[ 2 , 3 , 1 , 4 ]})

# PySpark-Panda's histogram met 2 bakken

pyspark_pandas_dataframe.plot.hist(bins= 2 )

Uitgang:

Hier zijn de kolomnamen 'Building_height' en 'Building_Area'.

Laten we naar het histogram kijken - rood verwijst naar 'Building_Area' en blauw verwijst naar de kolom 'Building_height':

Zoals we hebben aangegeven, zijn er slechts 2 bakken en 2 balken gemaakt. Hier worden vier rijen in 2 emmers gestapeld.

Plot histogram op de PySpark RDD door Bucket Number op te geven

Wanneer u met RDD werkt, kan het histogram worden geretourneerd in de vorm van een tuple die de buckets en totale waarden bevat die aanwezig zijn in elke bucket.

Syntaxis:

pyspark_RDD.histogram(buckets)

In dit scenario geven we het aantal buckets (integer) door dat is opgenomen in Histogram. Het retourneert de tuple van lijsten die de bucketbereiken en bijbehorende waardevermeldingen bevatten in de volgende indeling: ([bucketbereiken...], [waarden voorkomen...]).

Voorbeeld 1:

Laten we een RDD maken met de naam 'Building_height' met 10 waarden en een histogram maken met 3 buckets.

pyspark importeren

importeer vanuit pyspark.sql SparkSession

van pyspark.rdd RDD importeren

spark_app = SparkSession.builder.appName( 'linux' ).getOrCreate()

# Maak een RDD met 10 waarden

Building_height =spark_app.sparkContext.parallelize([ 120,56 , 234,67 , 12.0 , 200,45 , 17.8 , 24 , 56 , 78 , 90 , 100 ])

afdrukken( 'Werkelijk: ' ,Bouwhoogte.collect())

# Specificatie van 3 emmers

Bouwhoogte.histogram( 3 )

Uitgang:

  1. Bucket-1 varieert van 12,0 tot 86,223: in dit bereik is het totale aantal waarden in de bucket 5.
  2. Bucket-2 varieert van 86.223 tot 160.446: in dit bereik is het totale aantal waarden in de bucket 3.
  3. Bucket-3 varieert van 160.446 tot 234.67: in dit bereik is het totale aantal waarden in de bucket 2.

Voorbeeld 2:

Maak een histogram met 2 buckets op de eerder gemaakte RDD.

pyspark importeren

importeer vanuit pyspark.sql SparkSession

van pyspark.rdd RDD importeren

spark_app = SparkSession.builder.appName( 'linux' ).getOrCreate()

# Maak een RDD met 10 waarden

Building_height =spark_app.sparkContext.parallelize([ 120,56 , 234,67 , 12.0 , 200,45 , 17.8 , 24 , 56 , 78 , 90 , 100 ])

afdrukken( 'Werkelijk: ' ,Bouwhoogte.collect())

# Specificatie van 2 emmers

Bouwhoogte.histogram( 2 )

Uitgang:

  1. Bak 1 varieert van 12,0 tot 123,335. In dit bereik is het totale aantal waarden in de bucket 8.
  2. Bucket 2 varieert van 123,335 tot 234,67: in dit bereik is het totale aantal waarden in de bucket 2.

Plot histogram op de PySpark RDD door de grootte van elke bucket op te geven

In het vorige scenario hebben we de buckets doorgegeven aan de functie RDD.histogram(). Nu geven we de emmergroottes een voor een door binnen een lijst en geven we deze lijst door als een parameter aan deze functie. Zorg ervoor dat we ten minste twee buckets in oplopende/oplopende volgorde moeten specificeren en dat er geen dubbele waarden zijn.

Syntaxis:

pyspark_RDD.histogram([bucketbereiken...])

In dit scenario geven we het aantal buckets (integer) door dat in het histogram is opgenomen. Het retourneert de tuple van lijsten die de bucketbereiken en bijbehorende waardevermeldingen bevatten in de volgende indeling: ([bucketbereiken...], [waarden voorkomen...]).

Voorbeeld 1:

Laten we een RDD maken met de naam 'Building_height' met 10 waarden en een histogram maken met het bucker-waardenbereik [0, 50, 100, 150, 200, 250].

pyspark importeren

importeer vanuit pyspark.sql SparkSession

van pyspark.rdd RDD importeren

spark_app = SparkSession.builder.appName( 'linux' ).getOrCreate()

# Maak een RDD met 10 waarden

Building_height =spark_app.sparkContext.parallelize([ 120,56 , 234,67 , 12.0 , 200,45 , 17.8 , 24 , 56 , 178 , 90 , 100 ])

afdrukken( 'Werkelijk: ' ,Bouwhoogte.collect())

# Emmer specificeren met maat - [0,50,100,150,200,250]

Bouwhoogte.histogram([ 0 , vijftig , 100 , 150 , 200 , 250 ])

Uitgang:

  1. Bucket 1: (0 tot 50): De totale waarden in deze bucket zijn 3.
  2. Bucket 1: (50 tot 100): De totale waarden in deze bucket zijn 2.
  3. Bucket 1: (100 tot 150): De totale waarden in deze bucket zijn 2.
  4. Bucket 1: (150 tot 200): De totale waarden in deze bucket zijn 2.
  5. Bucket 1: (200 tot 250): De totale waarden in deze bucket zijn 2.

Voorbeeld 2:

Maak een histogram met het waardenbereik van de bucket [0, 100, 200, 300].

pyspark importeren

importeer vanuit pyspark.sql SparkSession

van pyspark.rdd RDD importeren

spark_app = SparkSession.builder.appName( 'linux' ).getOrCreate()

# Maak een RDD met 10 waarden

Building_height =spark_app.sparkContext.parallelize([ 120,56 , 234,67 , 12.0 , 200,45 , 17.8 , 24 , 56 , 178 , 90 , 100 ])

afdrukken( 'Werkelijk: ' ,Bouwhoogte.collect())

# Emmer specificeren met maat - [0,100,200,300]

Bouwhoogte.histogram([ 0 , 100 , 200 , 300 ])

Uitgang:

  1. Emmer 1: (0 tot 100). De totale waarde in deze bucket is 5.
  2. Emmer 2: (100 tot 200). De totale waarde in deze bucket is 3.
  3. Emmer 3: (200 tot 300). De totale waarde in deze bucket is 2.

Conclusie

We hebben gezien hoe u histogrammen kunt maken in PySpark op PySpark Panda's DataFrame en RDD. histogram() is de functie die wordt gebruikt om het histogram op RDD-gegevens te krijgen. De plot.hist() wordt gebruikt om het histogram weer te geven op PySpark Panda's DataFrame. We hebben deze functies met voorbeelden besproken door alle parameters te behandelen.