Toplama adım adım
Nokta gösterimini mi yoksa SQL’i mi kullanacağın kişisel bir tercih. Ancak, video egzersizinde gösterildiği gibi bazı durumlarda SQL daha basit olur. Yine video dersinde gösterildiği gibi, bazen de nokta gösterimi sezgilere aykırı bir sonuç verebilir; örneğin bir sütunda ikinci bir toplama işlemi, o sütundaki önceki toplamayı ezdiğinde. Videoda belirtildiği üzere, pyspark’ta agg’in temel sözdizimi, aynı anda her sütun için yalnızca tek bir toplama işlemi yapabilir.
Aşağıdaki egzersizler, her tren hattı için ilk kalkış saatini hesaplar.
İlk iki sorgu birbiriyle uyumlu. Ancak sonraki iki tanesi değil. Nedenini bulabilir misin?
Bu egzersiz
Python ile Spark SQL'e Giriş
kursunun bir parçasıdırEgzersiz talimatları
- İlk komut çifti aynı sonucu göstersin diye boşlukları doldur.
- Dördüncü sonuç olan
result, önceki satırı çoğaltmaya yönelik saf bir denemedir. Ancak sezgilere aykırı biçimde farklıdır. Nasıl?result'ın ikinci sütununun adını yazdırmak için boşluğu doldur.
Uygulamalı interaktif egzersiz
Bu örnek kodu tamamlayarak bu egzersizi bitirin.
# Give the identical result in each command
spark.sql('SELECT train_id, MIN(time) AS start FROM schedule GROUP BY train_id').show()
df.groupBy('____').agg({'time':'____'}).withColumnRenamed('____', 'start').show()
# Print the second column of the result
spark.sql('SELECT train_id, MIN(time), MAX(time) FROM schedule GROUP BY train_id').show()
result = df.groupBy('train_id').agg({'time':'min', 'time':'max'})
result.show()
print(result.columns[____])