代码之家  ›  专栏  ›  技术社区  ›  S. N

scala spark rdd连接两个具有相同ID的表

  •  -1
  • S. N  · 技术社区  · 6 年前

    我有以下RDD:

    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的电影的磁贴。我不确定如何使用用join创建的新RDD!

    1 回复  |  直到 6 年前
        1
  •  1
  •   Zoe - Save the data dump 张群峰    6 年前

    将它们转换为Spark数据帧并执行连接。你有什么特别的理由要保留他们的RDD吗?

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