写一个python 分布式数据分析案例
时间: 2023-12-12 09:56:43 浏览: 142
假设我们有一份包含大量电影数据的数据集,其中包含电影的名称、类型、评分等信息。我们想要对这份数据进行分析,找出评分最高的电影类型,并且绘制出该类型电影的评分分布图。
为了实现分布式数据分析,我们可以使用PySpark,它是Apache Spark的Python API。PySpark能够将数据分布式处理,从而加快数据分析的速度。
下面是一个简单的PySpark数据分析案例:
```python
from pyspark.sql import SparkSession
from pyspark.sql.functions import desc
# 创建SparkSession
spark = SparkSession.builder.appName("MovieAnalysis").getOrCreate()
# 加载数据集
movies = spark.read.csv("movies.csv", header=True, inferSchema=True)
# 对数据进行清洗和预处理
movies = movies.dropna()
movies = movies.filter(movies['rating'] >= 7)
# 统计每种电影类型的平均评分
avg_ratings = movies.groupBy("genres").avg("rating")
# 找出平均评分最高的电影类型
top_genre = avg_ratings.sort(desc("avg(rating)")).first().genres
# 打印平均评分最高的电影类型
print("Top genre:", top_genre)
# 绘制该类型电影的评分分布图
top_genre_movies = movies.filter(movies['genres'] == top_genre)
top_genre_movies.select('rating').rdd.histogram(10)
```
在这个案例中,我们首先使用SparkSession创建了一个Spark应用程序。然后,我们使用`read.csv`函数加载了数据集。接下来,我们对数据进行了清洗和预处理,删除了缺失值,并过滤出评分大于等于7的电影。然后,我们使用`groupBy`函数对每种电影类型进行了分组,并计算了平均评分。最后,我们使用`sort`函数找出了平均评分最高的电影类型,并打印出来。同时,我们筛选出了该类型的电影,使用`rdd.histogram`函数绘制了评分分布图。
这个案例展示了如何使用PySpark进行分布式数据分析,加快数据处理速度,并且能够处理大规模数据集。
阅读全文