Spark实验简介
什么是Spark
Apache Spark是一个快速、通用的大数据处理引擎,可以用于处理大规模数据集。它支持多种编程语言,如Java、Scala和Python,并提供了丰富的API来处理和分析数据。
Spark的一个重要特点是其内存计算能力,它可以将数据加载到内存中进行处理,从而提高处理速度。此外,Spark还提供了分布式计算能力,可以在多台计算机上并行处理数据。
Spark实验:分析电影评分数据
在本次实验中,我们将使用Spark来分析电影评分数据。我们将使用一个包含电影评分的数据集,然后使用Spark来计算每部电影的平均评分和评分人数,并使用饼状图展示结果。
数据集
我们将使用一个包含电影评分的数据集,其中包含以下列:
- userId:用户ID
- movieId:电影ID
- rating:评分
- timestamp:时间戳
步骤
- 导入必要的库和模块
from pyspark.sql import SparkSession
import matplotlib.pyplot as plt
- 创建SparkSession
spark = SparkSession.builder.appName("MovieRatingsAnalysis").getOrCreate()
- 加载数据集
data = spark.read.csv("movie_ratings.csv", header=True, inferSchema=True)
- 计算每部电影的平均评分和评分人数
movie_ratings = data.groupBy("movieId").agg({"rating": "avg", "userId": "count"})
- 将结果转换为Pandas DataFrame
movie_ratings_pd = movie_ratings.toPandas()
- 绘制饼状图展示每部电影的评分分布
plt.pie(movie_ratings_pd["count(userId)"], labels=movie_ratings_pd["movieId"], autopct='%1.1f%%')
plt.axis('equal')
plt.show()
实验结果
经过以上步骤,我们得到了每部电影的平均评分和评分人数,并使用饼状图展示了评分分布。
下表是部分电影的评分结果:
电影ID | 平均评分 | 评分人数 |
---|---|---|
1 | 3.9 | 120 |
2 | 4.2 | 230 |
3 | 3.7 | 80 |
下图是所有电影的评分分布:
pie
"1" : 30.0%
"2" : 40.0%
"3" : 20.0%
总结
通过本次实验,我们了解了如何使用Spark来分析电影评分数据。Spark提供了强大的功能和API,可以帮助我们处理和分析大规模的数据集。在实际应用中,Spark可以应用于各种大数据处理和分析场景,帮助我们快速、高效地处理数据。