開始使用免費開始

分組與彙總 I

彙總之所以強大,其中一個關鍵就是能配合分組使用。PySpark 對分組後的資料框有專門的類別:pyspark.sql.GroupedData,你在前兩個練習已經看過了。

你已經學過如何在不帶任何引數的情況下,對 DataFrame 呼叫 .groupBy() 來建立分組後的 DataFrame。

接下來你會看到,當你把 DataFrame 中一個或多個欄位名稱傳給 .groupBy() 方法時,後續的彙總方法就會像在 SQL 查詢中使用 GROUP BY 一樣運作!

請記住,工作環境中已經有名為 sparkSparkSession,以及 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()
編輯並執行程式碼