用spark对菜品数据和评分数据的预处理后的数据分析评分top5的菜品并画图的代码
时间: 2024-03-26 16:40:52 浏览: 13
以下是用spark对菜品数据和评分数据进行预处理并分析评分top5的菜品的代码,同时画出了柱状图。
```python
# 导入所需的模块
from pyspark.sql.functions import desc
from pyspark.sql.functions import col
import matplotlib.pyplot as plt
# 读取菜品数据
df_dish = spark.read.csv("path/to/dish_data.csv", header=True)
# 读取评分数据
df_rating = spark.read.csv("path/to/rating_data.csv", header=True)
# 对评分数据进行聚合,计算每道菜的平均评分
df_avg_rating = df_rating.groupBy("dish_id").agg({"rating": "avg"})
# 将两个数据集进行join操作
df_join = df_dish.join(df_avg_rating, "dish_id")
# 对平均评分进行降序排序
df_top5 = df_join.orderBy(desc("avg(rating)")).limit(5)
# 将结果转换为pandas dataframe,并画出柱状图
pd_top5 = df_top5.toPandas()
plt.bar(pd_top5["dish_name"], pd_top5["avg(rating)"])
plt.xticks(rotation=90)
plt.show()
```
其中,菜品数据和评分数据需要替换为实际的数据文件路径。柱状图的x轴为菜品名称,y轴为平均评分。