Örnek sorular
Pe Spark Execution Shuffle PartitionsZorluk 1
Spark'ta df.filter(...).select(...) çağrıldığında hemen ne olur?
- aFilter ve select hemen çalışır ve bellekte bir sonuç döner.
- bSpark, şemayı doğrulamak için kümede bir job başlatır.
- cSpark, transformation'lar için mantıksal bir plan kurar; henüz hiçbir şey çalışmaz.✓
- dSpark devam etmeden önce diske bir yürütme logu yazar.
Açıklama:filter ve select gibi transformation'lar Spark'ta lazy'dir; yalnızca mantıksal bir plan oluştururlar. Yürütme, count(), collect() ya da write() gibi bir action çağrıldığında başlar.
Pe Spark Execution Shuffle PartitionsZorluk 1
Aşağıdakilerden hangisi Spark'ta transformation değil, action'dır?
- a
df.count()✓ - b
df.withColumn(...) - c
df.groupBy(...) - d
df.repartition(10)
Açıklama:count(), biriken planın yürütülmesini tetikler ve sürücüye bir sonuç döner; bu, action'ın tanımlayıcı özelliğidir. withColumn, groupBy ve repartition sadece mantıksal plana adım ekler.
Pe Spark Execution Shuffle PartitionsZorluk 2
Spark'ın yürütme hiyerarşisinde yeni bir job'ın oluşmasını ne tetikler?
- a
map gibi bir transformation çağırmak - bBir shuffle sınırına ulaşmak
- cSürücünün başlaması
- d
collect() gibi bir action çağırmak✓
Açıklama:Her action çağrıldığında bir job oluşturulur; job daha sonra stage'lere, her stage de (partition başına bir tane olmak üzere) task'lara bölünür.
Pe Spark Execution Shuffle PartitionsZorluk 2
Bir Spark job'unda bir stage'in nerede bitip diğerinin nerede başladığını ne belirler?
- aKullanılabilir executor sayısı
- bBir shuffle sınırı✓
- cSürücünün bellek boyutu
- dKodun yazıldığı sıra
Açıklama:Spark, job'u shuffle sınırlarında stage'lere böler. Wide dependency (ör. groupBy, join) verinin partition'lar arasında taşınmasını gerektirdiği için yeni bir stage'e zorlar.
Pe Spark Execution Shuffle PartitionsZorluk 2
Hangi işlem narrow dependency'dir, yani her çıktı partition'ı bilinen, sınırlı bir girdi partition kümesine bağlıdır?
- a
map()✓ - b
groupByKey() - cBroadcast hint'i olmayan
join() - d
repartition()
Açıklama:map(), her girdi partition'ını bağımsız olarak bir çıktı partition'ına dönüştürür — bu bir narrow dependency'dir. groupByKey, join ve repartition verinin partition'lar arasında shuffle edilmesini gerektirir (wide dependency).
Pe Spark Execution Shuffle PartitionsZorluk 1
Spark'ta shuffle nedir?
- aTek bir partition içindeki satırları rastgele yeniden sıralamak
- bBir DataFrame'i diske yazmadan önce sıkıştırmak
- cBaşarısız olmuş bir executor'ı yeniden başlatmak
- dVeriyi partition'lar arasında ağ üzerinden yeniden dağıtmak✓
Açıklama:Shuffle, ilişkili anahtara sahip satırların aynı çıktı partition'ında bitmesi için veriyi yeniden dağıtır; bu genellikle executor'lar arasında ağ üzerinden veri taşınması anlamına gelir.