เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

การ Aggregate คอลัมน์เดิมสองครั้ง

บางกรณี dot notation อาจยุ่งยากกว่าการใช้ SQL โดยตรง แบบฝึกหัดนี้จะคำนวณเวลาแรกสุดและเวลาสุดท้ายของแต่ละสายรถไฟ โค้ดด้านล่างทำสิ่งเดียวกันโดยใช้ dot notation

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|
+--------+-----+-----+

ภารกิจของคุณคือเขียน SQL query ที่ได้ผลลัพธ์เหมือนกันทุกประการ โดย DataFrame df ได้ถูก register เป็นตารางชื่อ schedule แล้ว

แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร

Introduction to Spark SQL in Python

ดูคอร์ส

คำแนะนำการฝึกหัด

  • เขียน SQL query ที่ให้ผลลัพธ์เหมือนกับ dot notation query ข้างต้น

แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ

ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์

# Write a SQL query giving a result identical to dot_df
query = "SELECT ____ FROM schedule ____ ____ ____"
sql_df = spark.sql(query)
sql_df.show()
แก้ไขและรันโค้ด