Spark实验简介

什么是Spark

Apache Spark是一个快速、通用的大数据处理引擎,可以用于处理大规模数据集。它支持多种编程语言,如Java、Scala和Python,并提供了丰富的API来处理和分析数据。

Spark的一个重要特点是其内存计算能力,它可以将数据加载到内存中进行处理,从而提高处理速度。此外,Spark还提供了分布式计算能力,可以在多台计算机上并行处理数据。

Spark实验:分析电影评分数据

在本次实验中,我们将使用Spark来分析电影评分数据。我们将使用一个包含电影评分的数据集,然后使用Spark来计算每部电影的平均评分和评分人数,并使用饼状图展示结果。

数据集

我们将使用一个包含电影评分的数据集,其中包含以下列:

  • userId:用户ID
  • movieId:电影ID
  • rating:评分
  • timestamp:时间戳

步骤

  1. 导入必要的库和模块
from pyspark.sql import SparkSession
import matplotlib.pyplot as plt
  1. 创建SparkSession
spark = SparkSession.builder.appName("MovieRatingsAnalysis").getOrCreate()
  1. 加载数据集
data = spark.read.csv("movie_ratings.csv", header=True, inferSchema=True)
  1. 计算每部电影的平均评分和评分人数
movie_ratings = data.groupBy("movieId").agg({"rating": "avg", "userId": "count"})
  1. 将结果转换为Pandas DataFrame
movie_ratings_pd = movie_ratings.toPandas()
  1. 绘制饼状图展示每部电影的评分分布
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可以应用于各种大数据处理和分析场景,帮助我们快速、高效地处理数据。