開始使用免費開始

對同一欄位做兩次彙總

有些情況用點記法會比用 SQL 更繁瑣。本題要為每條列車線計算最早與最晚的時間。以下程式碼示範如何用點記法完成:

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 查詢達到相同結果。資料框 df 已註冊為名為 schedule 的資料表。

本練習屬於課程

Python Spark SQL 入門

檢視課程

練習說明

  • 撰寫一個 SQL 查詢,輸出需與上述點記法查詢的結果相同。

動手互動練習

試著完成這個範例程式碼,體驗一下這個練習。

# Write a SQL query giving a result identical to dot_df
query = "SELECT ____ FROM schedule ____ ____ ____"
sql_df = spark.sql(query)
sql_df.show()
編輯並執行程式碼