spark编程实现RDD转DataFrame,实现统计每部电影的评分人数
时间: 2023-08-17 14:15:56 浏览: 54
好的,下面是使用Spark编程实现RDD转DataFrame并统计每部电影的评分人数的代码(假设您的数据集中包含三列:用户ID、电影ID和评分):
```python
from pyspark.sql import SparkSession
from pyspark.sql.functions import count
# 创建SparkSession对象
spark = SparkSession.builder.appName("RDD to DataFrame").getOrCreate()
# 读取数据集
rdd = spark.sparkContext.textFile("ratings.dat")
# 转换RDD为DataFrame
df = rdd.map(lambda x: x.split("::")).\
toDF(["user_id", "movie_id", "rating"])
# 注册为临时表
df.createOrReplaceTempView("ratings")
# 使用Spark SQL统计每部电影的评分人数
result = spark.sql("SELECT movie_id, COUNT(DISTINCT user_id) AS num_ratings FROM ratings GROUP BY movie_id")
# 打印结果
result.show()
```
这段代码中,首先创建了一个SparkSession对象,然后读取了一个数据集ratings.dat,将其转换为DataFrame,并将其注册为一个临时表ratings。接着使用Spark SQL语句统计每部电影的评分人数,并将结果存储在result变量中。最后打印结果。