MovieLens 統計摘要
我們把 groupBy() 方法再往前推進一些。
當你對 dataframe 使用 .groupBy() 之後,就能執行彙總函式(aggregate functions),例如 .sum()、.avg()、.min(),而且結果會依分組彙整。本練習會帶你一步步完成。min 與 avg 已替你從 pyspark.sql.functions 匯入。
本練習屬於課程
使用 PySpark 打造推薦引擎
練習說明
- 以
movieId分組,並使用.count()計算每部電影收到多少評分。接著呼叫.select()來選取下列指標:min("count"):找出此資料集中任一電影的最小評分次數。第一個已替你示範。avg("count"):計算每部電影的平均評分次數
- 以相同方式操作,但這次改以
userId分組,取得評分次數的min與avg。
動手互動練習
試著完成這個範例程式碼,體驗一下這個練習。
# Min num ratings for movies
print("Movie with the fewest ratings: ")
ratings.groupBy("movieId").count().select(min("count")).show()
# Avg num ratings per movie
print("Avg num ratings per movie: ")
____.groupBy("____").count().____(avg("____")).____()
# Min num ratings for user
print("User with the fewest ratings: ")
ratings.____("userId").____().select(____("____")).____()
# Avg num ratings per users
print("Avg num ratings per user: ")
____.____("____").____().____(____("____")).____()