# 1-9 统计不同类型(中国菜、美式、墨西哥)的餐厅类型及数量
df9 = df.select(explode(split(df.categories, ', ')).alias('category')) .where((col('category')=='Chinese') | (col('category').like('American%')) | (col('category')=='Mexican')) .groupBy(col('category')) .agg(count(col('category')).alias('count')) .show()
# 1-10 统计不同类型(中国菜、美式、墨西哥)的餐厅的评论数量
df10_1 = df .select(col('name'),col('categories'),col('review_count')) .where("categories like '%Chinese%'") .agg(sum("review_count")) .withColumnRenamed("sum(review_count)","sum_Chinese") .show()df10_2 = df .select(col('name'),col('categories'),col('review_count')) .where("categories like '%Mexican%'") .agg(sum("review_count")) .withColumnRenamed("sum(review_count)", "sum_Mexican") .show()df10_3 = df .select(col('name'),col('categories'),col('review_count')) .where("categories like '%American%'") .agg(sum("review_count")) .withColumnRenamed("sum(review_count)", "sum_American") .show()
# 1-11 统计不同类型(中国菜、美式、墨西哥)的餐厅的评分分布
# 建立三张表,分别有1—5分的评分对应数量
# 中国菜
df11_1 = df .select(col('categories'),col("stars")) .where("categories like '%Chinese%'") .groupBy("stars") .agg(count("stars")) .withColumnRenamed("stars","stars_Chinese") .orderBy(col('stars_Chinese').desc()) .show()# 墨西哥
df11_2 = df .select(col('categories'),col("stars")) .where("categories like '%Mexican%'") .groupBy("stars") .agg(count("stars")) .withColumnRenamed("stars","stars_Mexican") .orderBy(col('stars_Mexican').desc()) .show()# 美式
df11_3 = df .select(col('categories'),col("stars")) .where("categories like '%American%'") .groupBy("stars") .agg(count("stars")) .withColumnRenamed("stars","stars_American") .orderBy(col('stars_American').desc()) .show()
# 文章中出现的df,请查看第一章节即可知晓。
"""
如果通过上述文章未能解决你的问题,请联系QQ:1491284097,请注明来意,将协助你解决问题。
"""
本文发布于:2024-01-28 17:38:03,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/17064346879109.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |