有rating.csv和moives.csv两个文件,编程实现RDD转DataFrame,并选择一个合理的SQL分析
时间: 2023-11-22 20:56:06 浏览: 111
可以使用Spark的SQLContext,将rating.csv和movies.csv文件读入DataFrame,然后使用Spark SQL进行分析。
以下是一个示例代码:
```
from pyspark.sql import SparkSession
# 创建SparkSession
spark = SparkSession.builder.appName("rating_analysis").getOrCreate()
# 读取rating.csv文件
rating_df = spark.read.csv("rating.csv", header=True, inferSchema=True)
# 读取movies.csv文件
movies_df = spark.read.csv("movies.csv", header=True, inferSchema=True)
# 将两个DataFrame注册为表
rating_df.createOrReplaceTempView("ratings")
movies_df.createOrReplaceTempView("movies")
# 使用Spark SQL进行分析,例如:找到最受欢迎的电影
popular_movies = spark.sql("SELECT movies.title, COUNT(*) AS count \
FROM ratings \
JOIN movies ON ratings.movieId = movies.movieId \
GROUP BY movies.title \
ORDER BY count DESC \
LIMIT 10")
# 显示结果
popular_movies.show()
# 关闭SparkSession
spark.stop()
```
在上面的代码中,我们首先使用SparkSession创建一个Spark应用程序。然后,我们使用`spark.read.csv`方法读取rating.csv和movies.csv文件,并将它们转换为DataFrame。接下来,我们使用`createOrReplaceTempView`方法将这两个DataFrame注册为表,以便使用Spark SQL进行查询。最后,我们使用Spark SQL查询最受欢迎的电影,并使用`show`方法显示结果。
阅读全文