Bu kılavuzda, PySpark Verilerinin histogram üzerinde nasıl çizileceğini göreceğiz. Burada iki senaryo görebiliriz. Histogram, PySpark Pandas DataFrame ve RDD verileri üzerinde oluşturulur. Bu iki senaryo için PySpark iki işlev sağlar: pyspark.pandas.DataFrame.plot.hist() & pyspark.RDD.histogram.
İçindekiler Konusu:
- PySpark Pandas DataFrame üzerinde Histogram çizin
- Bins Parametresi ile PySpark Pandas DataFrame üzerinde Histogram çizin
- Kova Numarasını Belirterek PySpark RDD'de Histogram Çizin
- Her Kovanın Boyutunu Belirterek PySpark RDD'de Histogram Çizin
Pyspark.pandas.DataFrame.plot.hist()
Bu senaryoda, histogram, yatay x ekseni boyunca bir dizi sınıfı sütunlara (PySpark Pandas DataFrame'den) yerleştiren verilerin grafik benzeri bir temsili olarak görüntülenir. Y ekseni, her sütun için PySpark Pandas DataFrame'deki oluşum sayısını temsil eder.
Sözdizimi:
pyspark_pandas_DataFrame.plot.hist(kutular,...)
Bir tamsayı olan isteğe bağlı bir parametre ve bazı isteğe bağlı anahtar kelime bağımsız değişkenleri olarak toplam kutu sayısını alır. Her sütun için bölmeler belirtilmemişse, bir çubuk oluşturulur.
PySpark Pandas DataFrame üzerinde Histogram çizin
4 kayıt içeren 2 sütuna sahip bir PySpark Pandas DataFrame oluşturun. plot.hist() işlevine herhangi bir parametre geçirmeden histogramı çizin.
pyspark'tan içe aktarma pandalarıpyspark_pandas_dataframe=pandas.DataFrame({ 'Bina_yüksekliği' :[ 120.56 , 234.67 , 12.0 , 200.45 ], 'Bina_Alan' :[ 2 , 3 , 1 , 4 ]})
print(pyspark_pandas_dataframe)
# PySpark-Pandalar histogramı
pyspark_pandas_dataframe.plot.hist()
Çıktı:
Buradaki sütun adları “Bina_yüksekliği” ve “Yapı_Alanı” şeklindedir.
Histograma bakalım:
Önceki DataFrame'deki toplam satır sayısı 4'tür. Böylece 4 bin oluşturulur.
Bins Parametresi ile PySpark Pandas DataFrame üzerinde Histogram çizin
4 kayıt içeren 2 sütuna sahip bir PySpark Pandas DataFrame oluşturun. plot.hist() işlevine herhangi bir parametre geçirmeden histogramı çizin.
pyspark'tan içe aktarma pandalarıpyspark_pandas_dataframe=pandas.DataFrame({ 'Bina_yüksekliği' :[ 120.56 , 234.67 , 12.0 , 200.45 ], 'Bina_Alan' :[ 2 , 3 , 1 , 4 ]})
# 2 bölmeli PySpark-Pandas histogramı
pyspark_pandas_dataframe.plot.hist(bins= 2 )
Çıktı:
Buradaki sütun adları “Bina_yüksekliği” ve “Yapı_Alanı” şeklindedir.
Histograma bakalım - kırmızı, 'Building_Area' ve mavi, 'Building_height' sütununu ifade eder:
Belirttiğimiz gibi sadece 2 bin ve 2 bar oluşturuldu. Burada dört sıra 2 kovaya bindirilir.
Kova Numarasını Belirterek PySpark RDD'de Histogram Çiz
RDD ile çalışırken, histogram, demetleri ve her demette bulunan toplam değerleri içeren bir demet biçiminde döndürülebilir.
Sözdizimi:
pyspark_RDD.histogram(paketler)Bu senaryoda, Histogram'a dahil edilen kova sayısını (tamsayı) iletiyoruz. Demet aralıklarını ve karşılık gelen değer oluşumlarını içeren listelerin demetini aşağıdaki biçimde döndürür: ([kova aralıkları…], [değer oluşumları…]).
Örnek 1:
10 değer ile “Building_height” adında bir RDD oluşturalım ve 3 kova ile bir histogram oluşturalım.
pyspark'ı içe aktarpyspark.sql'den SparkSession'ı içe aktarın
pyspark.rdd'den RDD'yi içe aktar
spark_app = SparkSession.builder.appName( 'linux' ).getOrCreate()
# 10 değerli bir RDD oluşturun
Building_height =spark_app.sparkContext.parallelize([ 120.56 , 234.67 , 12.0 , 200.45 , 17.8 , 24 , 56 , 78 , 90 , 100 ])
Yazdır( 'Gerçek: ' ,Building_height.collect())
# 3 grup belirleme
Building_height.histogram( 3 )
Çıktı:
- Grup-1, 12.0 ile 86.223 arasında değişir: Bu aralıkta, grupta bulunan toplam değer sayısı 5'tir.
- Kova-2, 86.223 ile 160.446 arasında değişir: Bu aralıkta, kovada bulunan toplam değer sayısı 3'tür.
- Kova-3, 160.446 ile 234.67 arasında değişir: Bu aralıkta, kovada bulunan toplam değer sayısı 2'dir.
Örnek 2:
Daha önce oluşturulan RDD'de 2 bölmeli bir histogram oluşturun.
pyspark'ı içe aktarpyspark.sql'den SparkSession'ı içe aktarın
pyspark.rdd'den RDD'yi içe aktar
spark_app = SparkSession.builder.appName( 'linux' ).getOrCreate()
# 10 değerli bir RDD oluşturun
Building_height =spark_app.sparkContext.parallelize([ 120.56 , 234.67 , 12.0 , 200.45 , 17.8 , 24 , 56 , 78 , 90 , 100 ])
Yazdır( 'Gerçek: ' ,Building_height.collect())
# 2 kova belirtme
Building_height.histogram( 2 )
Çıktı:
- Grup 1, 12,0 ile 123,335 arasında değişir. Bu aralıkta, grupta bulunan değerlerin toplam sayısı 8'dir.
- Bölüm 2, 123,335 ile 234,67 arasında değişir: Bu aralıkta, grupta bulunan değerlerin toplam sayısı 2'dir.
Her Kovanın Boyutunu Belirterek PySpark RDD'de Histogram Çizin
Önceki senaryoda, klasörleri RDD.histogram() işlevine aktardık. Şimdi sıra ile kova boyutlarını bir liste içerisinden geçiriyoruz ve bu listeyi bu fonksiyona parametre olarak iletiyoruz. Artan/artan düzende en az iki grup belirtmemiz gerektiğinden ve yinelenen değerlere sahip olmayacağından emin olun.
Sözdizimi:
pyspark_RDD.histogram([kova aralıkları…])Bu senaryoda, histograma dahil edilen kova sayısını (tam sayı) iletiyoruz. Demet aralıklarını ve karşılık gelen değer oluşumlarını içeren listelerin demetini aşağıdaki biçimde döndürür: ([kova aralıkları…], [değer oluşumları…]).
Örnek 1:
10 değer ile “Building_height” adında bir RDD oluşturalım ve bucker aralığı [0, 50, 100, 150, 200, 250] ile bir histogram oluşturalım.
pyspark'ı içe aktarpyspark.sql'den SparkSession'ı içe aktarın
pyspark.rdd'den RDD'yi içe aktar
spark_app = SparkSession.builder.appName( 'linux' ).getOrCreate()
# 10 değerli bir RDD oluşturun
Building_height =spark_app.sparkContext.parallelize([ 120.56 , 234.67 , 12.0 , 200.45 , 17.8 , 24 , 56 , 178 , 90 , 100 ])
Yazdır( 'Gerçek: ' ,Building_height.collect())
# Kovayı boyutla belirtme - [0,50,100,150,200,250]
Building_height.histogram([ 0 , elli , 100 , 150 , 200 , 250 ])
Çıktı:
- Grup 1: (0 - 50) : Bu gruptaki toplam değerler 3'tür.
- Grup 1: (50 - 100) : Bu gruptaki toplam değerler 2'dir.
- Grup 1: (100 - 150) : Bu gruptaki toplam değerler 2'dir.
- Grup 1: (150 ila 200) : Bu gruptaki toplam değerler 2'dir.
- Grup 1: (200 ila 250) : Bu gruptaki toplam değerler 2'dir.
Örnek 2:
Demet aralığı değerleri [0, 100, 200, 300] ile bir histogram oluşturun.
pyspark'ı içe aktarpyspark.sql'den SparkSession'ı içe aktarın
pyspark.rdd'den RDD'yi içe aktar
spark_app = SparkSession.builder.appName( 'linux' ).getOrCreate()
# 10 değerli bir RDD oluşturun
Building_height =spark_app.sparkContext.parallelize([ 120.56 , 234.67 , 12.0 , 200.45 , 17.8 , 24 , 56 , 178 , 90 , 100 ])
Yazdır( 'Gerçek: ' ,Building_height.collect())
# Kovayı boyutla belirtme - [0,100,200,300]
Building_height.histogram([ 0 , 100 , 200 , 300 ])
Çıktı:
- Grup 1: (0 ila 100). Bu gruptaki toplam değer 5'tir.
- Kova 2: (100 ila 200). Bu gruptaki toplam değer 3'tür.
- Kova 3: (200 ila 300). Bu gruptaki toplam değer 2'dir.
Çözüm
PySpark Pandas DataFrame ve RDD üzerinde PySpark'ta histogramların nasıl oluşturulduğunu gördük. histogram(), RDD verileri üzerindeki histogramı almak için kullanılan fonksiyondur. PySpark Pandas DataFrame'de histogramı görüntülemek için plot.hist() kullanılır. Bu fonksiyonları tüm parametreleri ele alarak örneklerle ele aldık.