# 2、用户分析
# 2-1 分析每年加入的用户数量
df12 = df0 \
.select(col("yelping_since"),to_timestamp(col("yelping_since"), "MM/dd/yyyy hh:mm:ss a")) \
.groupBy(year("yelping_since")) \
.count() \
.orderBy(desc("count")) \
.show()
# 2-2 统计评论达人
df13 = df0 \
.select('user_id','review_count') \
.orderBy(col('review_count').desc()).limit(20) \
.show()
# 2-3 统计人气最高的用户
df14 = df0 \
.select('user_id','fans') \
.orderBy(col('fans').desc()) \
.limit(20) \
.show()
# 2-4 统计每年优质用户、普通用户
df15 = df0 \
.select('elite','user_id') \
.withColumn('year',explode(split(col('elite'),',')) \
.alias('year')) \
.distinct()
df15 = df15 \
.select('year') \
.groupBy('year') \
.agg(count('year').alias('elite_count')) \
.orderBy(desc('elite_count')) \
.show()
# 2-5 显示每年总用户数、沉默用户数(未写评论)的比例 16
# 沉默用户数
df16_2 = df0.select('review_count') \
.where(col('review_count')==0).agg(count('review_count').alias('沉默用户数')) \
.show()
# 总用户数
df16_1 = df0.select('user_id','review_count') \
.agg(countDistinct('user_id').alias('总用户数')) \
.show()
# 文章中出现的df,请查看第一章节即可知晓。
"""
如果通过上述文章未能解决你的问题,请联系QQ:1491284097,请注明来意,将协助你解决问题。
"""