使用視窗函式 SQL 計算執行中總和
視窗函式類似彙總函式,但它會為資料集中的每一列輸出結果,而不是每個群組只輸出一列。
你可以把彙總和視窗函式一起使用。用視窗函式計算執行中的總和,比用連接來達成更簡單,查詢時間通常也更快。
已為你提供名為 schedule 的資料表,包含 train_id、station、time 和 diff_min 欄位。diff_min 欄位表示此路線上目前車站到下一個車站之間經過的時間。
本練習屬於課程
Python Spark SQL 入門
練習說明
- 執行一個查詢,為這個資料集中的每筆紀錄新增名為
running_total的欄位。running_total欄位使用SUM()對diff_min欄位所給的站間時間差進行加總(執行中總和)。 - 執行查詢並顯示結果。
動手互動練習
試著完成這個範例程式碼,體驗一下這個練習。
# Add col running_total that sums diff_min col in each group
query = """
SELECT train_id, station, time, diff_min,
____(____) OVER (PARTITION BY ____ ORDER BY ____) AS running_total
FROM schedule
"""
# Run the query and display the result
spark.____(query).show()