在scala中实现,有rating.csv和moives.csv两个文件,编程实现RDD转DataFrame,并选择一个合理的SQL分析
时间: 2023-11-27 11:49:23 浏览: 94
jackson-module-scala_2.12-2.6.7.1-API文档-中文版.zip
首先,我们需要导入Spark SQL相关的包:
```scala
import org.apache.spark.sql.{DataFrame, SparkSession}
import org.apache.spark.sql.functions._
```
然后,创建一个SparkSession对象:
```scala
val spark = SparkSession.builder()
.appName("RDD to DataFrame")
.master("local[*]")
.getOrCreate()
```
接着,读取rating.csv和movies.csv两个文件,并将它们转换为DataFrame:
```scala
val ratingDF = spark.read
.option("header", "true")
.option("inferSchema", "true")
.csv("rating.csv")
val moviesDF = spark.read
.option("header", "true")
.option("inferSchema", "true")
.csv("movies.csv")
```
接下来,我们可以对两个DataFrame进行一些基本的操作,例如:筛选出评分大于4的电影。
```scala
val resultDF = ratingDF.join(moviesDF, Seq("movieId"), "left")
.filter(col("rating") > 4)
.select("title", "genres", "rating")
```
最后,将结果保存到文件中:
```scala
resultDF.write
.option("header", "true")
.csv("output")
```
这里我们选择了一个简单的SQL分析,即筛选出评分大于4的电影,并输出电影的名称、类型和评分到文件中。当然,在实际应用中,我们可以根据需求进行更加复杂的分析。
阅读全文