pycharm获取yelp相关数据(二)

# 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,请注明来意,将协助你解决问题。
"""

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值