彙總運算
常見的彙總方法,例如 .min()、.max() 和 .count(),都是 GroupedData 的方法。這些方法是透過呼叫 DataFrame 的 .groupBy() 產生的物件來使用。接下來幾個練習你會更清楚其意義。現在,你只需要在 DataFrame 上呼叫該方法就能使用這些函式。例如,若要找出 DataFrame df 中欄位 col 的最小值,可以這麼做:
df.groupBy().min("col").show()
這會建立一個 GroupedData 物件(因此你可以使用 .min() 方法),接著在 col 中找出最小值,並以 DataFrame 形式回傳。
現在就來試著自己做一些彙總吧!
工作區中已經有名為 spark 的 SparkSession,以及 Spark DataFrame flights。
本練習屬於課程
PySpark 基礎
練習說明
- 先用
.filter()篩出從 PDX 起飛的航班,再用.min()找出最短(以距離計)航班的距離。請直接參照欄位來篩選,不要傳入 SQL 字串。 - 用
filter()篩出從 SEA 起飛的航班,再用.max()找出最長(以時間計)航班的時間。請直接參照欄位來篩選,不要傳入 SQL 字串。
動手互動練習
試著完成這個範例程式碼,體驗一下這個練習。
# Find the shortest flight from PDX in terms of distance
flights.filter(____.____ == ____).groupBy().____(____).show()
# Find the longest flight from SEA in terms of air time
flights.filter(____).groupBy().____.show()