scala spark rdd引导具有相同ID的两个表

时间:2018-12-16 14:45:41

标签: scala apache-spark rdd

我有以下rdds:

case class Rating(user_ID: Integer, movie_ID: Integer, rating: Integer, timestamp: String)
case class Movie(movie_ID: Integer, title: String, genre: String)

我在scala中将他们加入一起,例如:

val m = datamovie.keyBy(_.movie_ID)
val r = data.keyBy(_.movie_ID)
val mr = m.join(r)  

我得到的结果像RDD[(Int, (Movie, Rating))] 例如,如何打印评级为5的电影的图块。我不确定要如何使用通过联接创建的新rdd!

1 个答案:

答案 0 :(得分:1)

将它们转换为引发数据框并执行联接。您是否要保留RDD的特定原因?

val m = datamovie.toDF
val r = data.toDF
val mr = m.join(r, Seq("movie_id"), "left").where($"rating" === "5").select($"title")