Mulai sekarangMulai gratis

Agregasi, selangkah demi selangkah

Apakah menggunakan notasi titik atau SQL adalah preferensi pribadi. Namun, seperti ditunjukkan dalam latihan video, ada kasus ketika SQL lebih sederhana. Juga seperti ditunjukkan dalam pelajaran video, ada pula kasus ketika notasi titik menghasilkan hasil yang tidak intuitif, misalnya ketika agregasi kedua pada sebuah kolom menimpa agregasi sebelumnya pada kolom tersebut. Seperti disebutkan dalam video, sintaks dasar agg di pyspark hanya mampu melakukan satu agregasi pada setiap kolom dalam satu waktu.

Latihan berikut menghitung waktu keberangkatan pertama untuk setiap jalur kereta.

Dua kueri pertama cocok. Namun, dua yang kedua tidak. Dapatkah Anda menentukan alasannya?

Latihan ini merupakan bagian dari kursus

Pengantar Spark SQL dalam Python

Lihat Kursus

Instruksi latihan

  • Isi bagian yang kosong agar pasangan perintah pertama menampilkan hasil yang identik.
  • Hasil keempat, bernama result, adalah upaya naif untuk mereplikasi baris sebelumnya. Namun, hasilnya berbeda secara tidak intuitif. Bagaimana? Isi bagian kosong untuk mencetak nama kolom kedua dari result.

Latihan interaktif langsung praktik

Cobalah latihan ini dengan melengkapi kode contoh ini.

# 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[____])
Edit dan Jalankan Kode