PySpark'ta Dayanıklı Dağıtık Veri Kümeleri

PySpark'e Giriş

Benjamin Schmidt

Data Engineer

PySpark'ta Paralelleştirme Nedir?

  • Verileri ve hesaplamaları bir kümedeki birden fazla düğümde otomatik olarak paralel hale getirme
  • Büyük veri kümelerinin birden fazla düğümde dağıtık işlenmesi
  • İşçi düğümler verileri paralel işler, görev sonunda birleştirir
  • Büyük ölçekli hızlı işlem (gigabayt veya terabayt düşünün)

Paralelleştirme

PySpark'e Giriş

RDD'leri Anlamak

RDD'ler veya Dayanıklı Dağıtık Veri Kümeleri:

  • Küme genelinde dağıtık veri koleksiyonları, düğüm hatalarından otomatik kurtarma ile
  • Büyük ölçekli veriler için uygun
  • Değişmez ve map() veya filter() gibi işlemlerle dönüştürülebilir, collect() veya paralelize() gibi eylemlerle sonuçlar alınabilir veya RDD'ler oluşturulabilir
PySpark'e Giriş

Bir RDD Oluşturma

# Bir Spark oturumu başlat
from pyspark.sql import SparkSession

spark = SparkSession.builder.appName("RDDExample").getOrCreate()

# Bir csv'den DataFrame oluştur census_df = spark.read.csv("/census.csv")
# DataFrame'i RDD'ye dönüştür census_rdd = census_df.rdd
# RDD'nin içeriğini collect() ile göster census_rdd.collect()
PySpark'e Giriş

Collect'i Gösterme

# Tüm DataFrame'i yerel bir Python Row nesneleri listesine topla
data_collected = df.collect()

# Toplanan verileri yazdır
for row in data_collected:
    print(row)
```    
PySpark'e Giriş

RDD'ler ve DataFrame'ler

DataFrame'ler

  • Yüksek seviye: Kullanım kolaylığı için optimize edilmiş
  • SQL Benzeri İşlemler: SQL benzeri sorgularla çalışır ve daha az kodla karmaşık işlemler yapar
  • Şema Bilgisi: SQL Tablosu gibi sütunlar ve türler içerir

RDD'ler

  • Düşük seviye: Daha esnek ama karmaşık işlemler için daha fazla kod gerektirir
  • Tür Güvenliği: Veri türlerini korur ama DataFrame'lerin optimizasyon avantajlarına sahip değildir
  • Şema Yok: SQL veya ilişkisel veri gibi yapılandırılmış verilerle çalışmak daha zordur
  • Büyük Ölçekleme
  • DataFrame'lere göre çok daha ayrıntılı ve analitiklerde zayıf
PySpark'e Giriş

Bazı Faydalı Fonksiyonlar ve Metodlar

  • map(): Fonksiyonları (lambda fonksiyonu gibi) bir veri kümesine uygular: rdd.map(map_function)
  • collect(): Küme genelinden verileri toplar: rdd.collect()
PySpark'e Giriş

Hadi Pratik Yapalım!

PySpark'e Giriş

Preparing Video For Download...