PySpark DataFrame'lerine Giriş

PySpark'e Giriş

Benjamin Schmidt

Data Engineer

DataFrame'ler Hakkında

  • DataFrame'ler: Tablo formatı (satır/sütun)
  • SQL benzeri işlemleri destekler
  • Pandas DataFrame veya SQL TABLO'ya benzer
  • Yapılandırılmış Veri

DataFrame'ler

PySpark'e Giriş

Dosya Depolarından DataFrame Oluşturma

# CSV'den DataFrame oluşturma
census_df = spark.read.csv('path/to/census.csv', header=True, inferSchema=True)
PySpark'e Giriş

DataFrame'i Yazdırma

# DataFrame'in ilk 5 satırını göster
census_df.show()


   age  education.num marital.status         occupation income
0   90              9        Widowed                  ?  <=50K
1   82              9        Widowed    Exec-managerial  <=50K
2   66             10        Widowed                  ?  <=50K
3   54              4       Divorced  Machine-op-inspct  <=50K
4   41             10      Separated     Prof-specialty  <=50K
PySpark'e Giriş

DataFrame Şemasını Yazdırma

# Şemayı göster
census_df.printSchema()

Çıktı: root |-- age: integer (nullable = true) |-- education.num: integer (nullable = true) |-- marital.status: string (nullable = true) |-- occupation: string (nullable = true) |-- income: string (nullable = true)
PySpark'e Giriş

PySpark DataFrame'lerinde Temel Analitik İşlemler

# .count() DataFrame'deki toplam satır sayısını döndürür
row_count = census_df.count()
print(f'Satır sayısı: {row_count}')
# groupby() SQL benzeri toplama işlemlerine izin verir
census_df.groupBy('gender').agg({'salary_usd': 'avg'}).show()

Diğer toplama fonksiyonları:

  • sum()
  • min()
  • max()
PySpark'e Giriş

PySpark Analitiği için Ana Fonksiyonlar

  • .select(): DataFrame'den belirli sütunları seçer
  • .filter(): Belirli koşullara göre satırları filtreler
  • .groupBy(): Satırları bir veya daha fazla sütuna göre gruplar
  • .agg(): Gruplanmış verilere toplama fonksiyonları uygular
PySpark'e Giriş

Örnek İçin Ana Fonksiyonlar

# filter ve select kullanarak DataFrame'i daraltabiliriz
filtered_census_df = census_df.filter(df['age'] > 50).select('age', 'occupation')
filtered_census_df.show()

Çıktı +---+------------------+ |age| occupation | +---+------------------+ | 90| ?| | 82| Exec-managerial| | 66| ?| | 54| Machine-op-inspct| +---+------------------+
PySpark'e Giriş

Hadi pratik yapalım!

PySpark'e Giriş

Preparing Video For Download...