分組與彙總 I
彙總之所以強大,其中一個關鍵就是能配合分組使用。PySpark 對分組後的資料框有專門的類別:pyspark.sql.GroupedData,你在前兩個練習已經看過了。
你已經學過如何在不帶任何引數的情況下,對 DataFrame 呼叫 .groupBy() 來建立分組後的 DataFrame。
接下來你會看到,當你把 DataFrame 中一個或多個欄位名稱傳給 .groupBy() 方法時,後續的彙總方法就會像在 SQL 查詢中使用 GROUP BY 一樣運作!
請記住,工作環境中已經有名為 spark 的 SparkSession,以及 Spark DataFrame flights。
本練習屬於課程
PySpark 基礎
練習說明
- 建立名為
by_plane的 DataFrame,並以欄位tailnum分組。 - 使用不帶引數的
.count()方法,計算每架飛機執行的航班次數。 - 建立名為
by_origin的 DataFrame,並以欄位origin分組。 - 對
air_time欄位使用.avg(),找出從 PDX 與 SEA 起飛的航班平均飛行時間。
動手互動練習
試著完成這個範例程式碼,體驗一下這個練習。
# Group by tailnum
by_plane = flights.groupBy("____")
# Number of flights each plane made
by_plane.____.show()
# Group by origin
by_origin = flights.groupBy("____")
# Average duration of flights from PDX and SEA
by_origin.avg("____").show()