spark练习案例_spark练习——影评案例
时间: 2023-07-04 17:10:00 浏览: 107
影评案例是一个很好的Spark练习案例,可以帮助你熟悉Spark的基本操作和数据处理。下面我为你提供一个简单的影评案例,希望能帮助到你。
1. 数据准备
我们需要一份电影评分数据集,可以从MovieLens网站上下载到,这里我们使用ml-latest-small数据集,该数据集包含了用户对电影的评分、电影信息和用户信息等数据。
2. 数据处理
我们需要将数据导入到Spark中,并进行数据预处理。首先,我们需要将数据转换成DataFrame类型,然后对数据进行清洗和整理,例如去掉重复数据、缺失数据处理等。
以下是一个简单的处理代码:
```
from pyspark.sql.functions import col
# 读取数据
ratings = spark.read.csv("ratings.csv", header=True, inferSchema=True)
# 去重
ratings = ratings.dropDuplicates()
# 处理缺失值
ratings = ratings.dropna()
# 转换数据类型
ratings = ratings.withColumn("userId", col("userId").cast("int"))
ratings = ratings.withColumn("movieId", col("movieId").cast("int"))
ratings = ratings.withColumn("rating", col("rating").cast("double"))
# 查看数据
ratings.show()
```
3. 数据分析
我们可以使用Spark进行各种数据分析操作,例如对电影评分进行统计,找出评分最高的电影,计算每个用户的平均评分等。
以下是一个简单的分析代码:
```
from pyspark.sql.functions import desc, avg
# 统计每个电影的评分数量和平均评分
movie_ratings = ratings.groupBy("movieId").agg({"rating": "count", "rating": "avg"})
movie_ratings = movie_ratings.withColumnRenamed("count(rating)", "num_ratings").withColumnRenamed("avg(rating)", "avg_rating")
# 找出评分最高的电影
top_movies = movie_ratings.orderBy(desc("avg_rating")).limit(10)
# 计算每个用户的平均评分
user_ratings = ratings.groupBy("userId").agg(avg("rating"))
# 查看结果
top_movies.show()
user_ratings.show()
```
4. 结果展示
最后,我们可以将结果保存到文件或数据库中,或者使用可视化工具展示结果。
以上是一个简单的Spark影评案例,希望能够帮助到你。如果你想深入学习Spark,可以尝试更复杂的案例和练习。
阅读全文