PySpark 的 groupby
你已經看過如何使用 dask 框架及其 DataFrame 抽象來進行計算。不過,如同影片所示,在大數據領域,Spark 可能是更受歡迎的資料處理選擇。
在這個練習中,你會使用 PySpark 套件來操作一個 Spark DataFrame。資料與先前練習相同:1896 到 2016 年間參與奧運項目的選手。
Spark DataFrame athlete_events_spark 已經在你的工作空間中可用。
你在本練習會用到的方法有:
.printSchema():協助列印 Spark DataFrame 的結構(schema)。.groupBy():進行彙總時的分組敘述。.mean():對每個群組計算平均值。.show():顯示結果。
本練習屬於課程
Data Engineering 入門
練習說明
- 找出
athlete_events_spark的型別。 - 檢視
athlete_events_spark的結構(schema)。 - 列印依年份分組後,奧運選手的平均年齡。注意,Spark 此時其實尚未執行任何計算。這種行為稱為「延遲求值」(lazy evaluation)。
- 以上一步的結果為基礎,對結果呼叫
.show()來計算並顯示平均年齡。
動手互動練習
試著完成這個範例程式碼,體驗一下這個練習。
# Print the type of athlete_events_spark
print(____(athlete_events_spark))
# Print the schema of athlete_events_spark
print(athlete_events_spark.____())
# Group by the Year, and find the mean Age
print(athlete_events_spark.____('Year').mean(____))
# Group by the Year, and find the mean Age
print(athlete_events_spark.____('Year').mean(____).____())