Sa gabay na ito, makikita natin kung paano i-plot ang Data ng PySpark sa histogram. Dalawang senaryo ang makikita natin dito. Ang histogram ay nilikha sa PySpark Pandas DataFrame at sa RDD data. Para sa dalawang sitwasyong ito, nagbibigay ang PySpark ng dalawang function: pyspark.pandas.DataFrame.plot.hist() at pyspark.RDD.histogram.
Paksa ng Nilalaman:
- I-plot ang Histogram sa PySpark Pandas DataFrame
- I-plot ang Histogram sa PySpark Pandas DataFrame gamit ang Parameter ng Bins
- I-plot ang Histogram sa PySpark RDD sa pamamagitan ng Pagtukoy sa Numero ng Bucket
- I-plot ang Histogram sa PySpark RDD sa pamamagitan ng Pagtukoy sa Sukat ng Bawat Bucket
Pyspark.pandas.DataFrame.plot.hist()
Sa sitwasyong ito, ang histogram ay ipinapakita bilang isang graph-like na representasyon ng data na bucket ng isang hanay ng mga klase sa mga column (mula sa PySpark Pandas DataFrame) kasama ang pahalang na x-axis. Kinakatawan ng y-axis ang bilang ng mga paglitaw sa PySpark Pandas DataFrame para sa bawat column.
Syntax:
pyspark_pandas_DataFrame.plot.hist(bins,...)
Kinukuha nito ang kabuuang bilang ng mga bin bilang opsyonal na parameter na isang integer at ilang opsyonal na argumento ng keyword. Kung ang mga bin ay hindi tinukoy para sa bawat hanay, isang bar ay nilikha.
I-plot ang Histogram sa PySpark Pandas DataFrame
Gumawa ng PySpark Pandas DataFrame na mayroong 2 column na may 4 na record. I-plot ang histogram nang hindi nagpapasa ng anumang parameter sa plot.hist() function.
mula sa pyspark import pandapyspark_pandas_dataframe=pandas.DataFrame({ 'Building_height' :[ 120.56 , 234.67 , 12.0 , 200.45 ], 'Lugar_Gusali' :[ 2 , 3 , 1 , 4 ]})
print(pyspark_pandas_dataframe)
# PySpark-Pandas histogram
pyspark_pandas_dataframe.plot.hist()
Output:
Dito, ang mga pangalan ng column ay 'Building_height' at 'Building_Area'.
Tingnan natin ang Histogram:
Ang kabuuang bilang ng mga row sa nakaraang DataFrame ay 4. Kaya, 4 na bin ang nalikha.
I-plot ang Histogram sa PySpark Pandas DataFrame gamit ang Parameter ng Bins
Gumawa ng PySpark Pandas DataFrame na mayroong 2 column na may 4 na record. I-plot ang histogram nang hindi nagpapasa ng anumang parameter sa plot.hist() function.
mula sa pyspark import pandapyspark_pandas_dataframe=pandas.DataFrame({ 'Building_height' :[ 120.56 , 234.67 , 12.0 , 200.45 ], 'Lugar_Gusali' :[ 2 , 3 , 1 , 4 ]})
# PySpark-Pandas histogram na may 2 bins
pyspark_pandas_dataframe.plot.hist(bins= 2 )
Output:
Dito, ang mga pangalan ng column ay 'Building_height' at 'Building_Area'.
Tingnan natin ang histogram - ang pula ay tumutukoy sa 'Building_Area' at ang asul ay tumutukoy sa 'Building_height' na column:
Gaya ng aming tinukoy, 2 bin at 2 bar lang ang ginawa. Apat na row ang nakabinned sa 2 bucket dito.
I-plot ang Histogram sa PySpark RDD sa pamamagitan ng Pagtukoy sa Numero ng Bucket
Kapag nagtatrabaho ka sa RDD, maaaring ibalik ang histogram sa anyo ng isang tuple na kinabibilangan ng mga bucket at kabuuang halaga na nasa bawat bucket.
Syntax:
pyspark_RDD.histogram(mga bucket)Sa sitwasyong ito, ipinapasa namin ang bilang ng mga bucket (integer) na kasama sa Histogram. Ibinabalik nito ang tuple ng mga listahan na kinabibilangan ng mga hanay ng bucket at mga katumbas na paglitaw ng halaga sa sumusunod na format: ([mga saklaw ng bucket…], [mga paglitaw ng halaga…]).
Halimbawa 1:
Gumawa tayo ng RDD na may pangalang 'Building_height' na may 10 value at gumawa ng histogram na may 3 bucket.
import pysparkmula sa pyspark.sql import SparkSession
mula sa pyspark.rdd import RDD
spark_app = SparkSession.builder.appName( 'linux' ).getOrCreate()
# Gumawa ng RDD na may 10 value
Building_height =spark_app.sparkContext.parallelize([ 120.56 , 234.67 , 12.0 , 200.45 , 17.8 , 24 , 56 , 78 , 90 , 100 ])
print( 'Actual:' ,Building_height.collect())
# Pagtukoy ng 3 bucket
Building_height.histogram( 3 )
Output:
- Ang bucket-1 ay mula 12.0 hanggang 86.223 : Sa hanay na ito, ang kabuuang bilang ng mga value na nasa bucket ay 5.
- Ang bucket-2 ay mula 86.223 hanggang 160.446 : Sa hanay na ito, ang kabuuang bilang ng mga value na nasa bucket ay 3.
- Ang Bucket-3 ay mula 160.446 hanggang 234.67 : Sa hanay na ito, ang kabuuang bilang ng mga value na nasa bucket ay 2.
Halimbawa 2:
Gumawa ng histogram na may 2 bucket sa dating ginawang RDD.
import pysparkmula sa pyspark.sql import SparkSession
mula sa pyspark.rdd import RDD
spark_app = SparkSession.builder.appName( 'linux' ).getOrCreate()
# Gumawa ng RDD na may 10 value
Building_height =spark_app.sparkContext.parallelize([ 120.56 , 234.67 , 12.0 , 200.45 , 17.8 , 24 , 56 , 78 , 90 , 100 ])
print( 'Actual:' ,Building_height.collect())
# Pagtukoy ng 2 bucket
Building_height.histogram( 2 )
Output:
- Ang bucket 1 ay mula 12.0 hanggang 123.335. Sa hanay na ito, ang kabuuang bilang ng mga value na nasa bucket ay 8.
- Ang bucket 2 ay mula 123.335 hanggang 234.67: Sa hanay na ito, ang kabuuang bilang ng mga value na nasa bucket ay 2.
I-plot ang Histogram sa PySpark RDD sa pamamagitan ng Pagtukoy sa Sukat ng Bawat Bucket
Sa nakaraang senaryo, ipinasa namin ang mga bucket sa RDD.histogram() function. Ngayon, ipinapasa namin ang mga laki ng bucket nang paisa-isa sa loob ng isang listahan at ipinapasa ang listahang ito bilang parameter sa function na ito. Tiyaking kailangan nating tumukoy ng hindi bababa sa dalawang bucket sa pagtaas/papataas na pagkakasunud-sunod at hindi ito magkakaroon ng mga duplicate na halaga.
Syntax:
pyspark_RDD.histogram([mga saklaw ng bucket…])Sa sitwasyong ito, ipinapasa namin ang bilang ng mga bucket (integer) na kasama sa histogram. Ibinabalik nito ang tuple ng mga listahan na kinabibilangan ng mga hanay ng bucket at mga katumbas na paglitaw ng halaga sa sumusunod na format: ([mga saklaw ng bucket…], [mga paglitaw ng halaga…]).
Halimbawa 1:
Gumawa tayo ng RDD na pinangalanang 'Building_height' na may 10 value at gumawa ng histogram na may bucker range ng mga value [0, 50, 100, 150, 200, 250].
import pysparkmula sa pyspark.sql import SparkSession
mula sa pyspark.rdd import RDD
spark_app = SparkSession.builder.appName( 'linux' ).getOrCreate()
# Gumawa ng RDD na may 10 value
Building_height =spark_app.sparkContext.parallelize([ 120.56 , 234.67 , 12.0 , 200.45 , 17.8 , 24 , 56 , 178 , 90 , 100 ])
print( 'Actual:' ,Building_height.collect())
# Tinutukoy ang bucket na may sukat - [0,50,100,150,200,250]
Building_height.histogram([ 0 , limampu , 100 , 150 , 200 , 250 ])
Output:
- Bucket 1: (0 hanggang 50): Ang kabuuang halaga sa bucket na ito ay 3.
- Bucket 1: (50 hanggang 100): Ang kabuuang halaga sa bucket na ito ay 2.
- Bucket 1: (100 hanggang 150): Ang kabuuang halaga sa bucket na ito ay 2.
- Bucket 1: (150 hanggang 200) : Ang kabuuang halaga sa bucket na ito ay 2.
- Bucket 1: (200 hanggang 250): Ang kabuuang halaga sa bucket na ito ay 2.
Halimbawa 2:
Gumawa ng histogram na may bucket na hanay ng mga halaga [0, 100, 200, 300].
import pysparkmula sa pyspark.sql import SparkSession
mula sa pyspark.rdd import RDD
spark_app = SparkSession.builder.appName( 'linux' ).getOrCreate()
# Gumawa ng RDD na may 10 value
Building_height =spark_app.sparkContext.parallelize([ 120.56 , 234.67 , 12.0 , 200.45 , 17.8 , 24 , 56 , 178 , 90 , 100 ])
print( 'Actual:' ,Building_height.collect())
# Tinutukoy ang bucket na may sukat - [0,100,200,300]
Building_height.histogram([ 0 , 100 , 200 , 300 ])
Output:
- Bucket 1: (0 hanggang 100). Ang kabuuang halaga sa bucket na ito ay 5.
- Bucket 2: (100 hanggang 200). Ang kabuuang halaga sa bucket na ito ay 3.
- Bucket 3: (200 hanggang 300). Ang kabuuang halaga sa bucket na ito ay 2.
Konklusyon
Nakita namin kung paano lumikha ng mga histogram sa PySpark sa PySpark Pandas DataFrame at RDD. histogram() ay ang function na ginagamit upang makuha ang histogram sa RDD data. Ang plot.hist() ay ginagamit upang ipakita ang histogram sa PySpark Pandas DataFrame. Tinalakay namin ang mga function na ito na may mga halimbawa sa pamamagitan ng pagsakop sa lahat ng mga parameter.