# 3、评分分析
# 3-1 统计每年的评论数 ( 评论表 )
df17 = rev_df.withColumn('year',year('date'))
df17=df17.select('year') \
.groupBy('year') \
.agg(count('year') \
.alias('每年评论次数')) \
.orderBy(col('每年评论次数') \
.desc()) \
.limit(20) \
.show()
# 3-2 统计评分周(周一~周天)次数统计 ( 评论表 )
df18 = rev_df.withColumn('day_week',dayofweek('date'))
df18 = df18.select('day_week') \
.groupBy('day_week') \
.agg(count('day_week').alias('周评论数量')) \
.orderBy(col('day_week')) \
.show()
# 3-3 统计评分的分布情况
df19 = rev_df.select('stars') \
.groupBy('stars').agg(count('stars').alias('星级数量')) \
.orderBy(col('星级数量').desc()) \
.show()
# 3-4 统计有用(helpful)、有趣(funny)及酷(cool)的评论及数量
df20 = rev_df \
.select("useful", "funny", "cool") \
.agg(sum("useful").alias("有用的评论数量"), sum("funny").alias("有趣的评论数量"), sum("cool").alias("酷的评论数量")) \
.show()
# 3-5 每年全部评论用户排行榜
df21 = rev_df.select("user_id", year("date").alias("year")) \
.groupBy("year", "user_id") \
.agg(count("user_id").alias("count")) \
.orderBy(col("year").desc(), col("count").desc()).limit(10) \
.show()
# 文章中出现的评论表 ( rev_df ),请查看第一章节即可知晓。