MovieLens 汇总统计
让我们把 groupBy() 方法再深入一步。
当您对 dataframe 应用 .groupBy() 方法后,可以进一步运行 .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: ")
____.____("____").____().____(____("____")).____()