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
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()