Mulai sekarangMulai gratis

Mengagregasi kolom yang sama dua kali

Ada kalanya notasi titik lebih merepotkan dibanding SQL. Latihan ini menghitung waktu pertama dan terakhir untuk setiap jalur kereta. Kode berikut melakukannya dengan notasi titik.

from pyspark.sql.functions import min, max, col
expr = [min(col("time")).alias('start'), max(col("time")).alias('end')]
dot_df = df.groupBy("train_id").agg(*expr)
dot_df.show()
+--------+-----+-----+
|train_id|start|  end|
+--------+-----+-----+
|     217|6:06a|6:59a|
|     324|7:59a|9:05a|
+--------+-----+-----+

Misi Anda adalah mencapai hasil yang sama menggunakan kueri SQL. DataFrame df telah didaftarkan sebagai tabel bernama schedule.

Latihan ini merupakan bagian dari kursus

Pengantar Spark SQL dalam Python

Lihat Kursus

Instruksi latihan

  • Tulis kueri SQL yang menghasilkan hasil identik dengan kueri notasi titik.

Latihan interaktif langsung praktik

Cobalah latihan ini dengan melengkapi kode contoh ini.

# Write a SQL query giving a result identical to dot_df
query = "SELECT ____ FROM schedule ____ ____ ____"
sql_df = spark.sql(query)
sql_df.show()
Edit dan Jalankan Kode