【问题标题】:Spark Scala - how to compare certain element in one row with another element in a different rowSpark Scala - 如何将一行中的某个元素与另一行中的另一个元素进行比较
【发布时间】:2020-08-30 03:33:27
【问题描述】:

我有一个 RDD[Int, (String, String),(String, String)] 的连接 RDD 例如:

(1, (UserID1, pwd1),(UserID2, pwd2))
(2, (UserID2, pwd2),(UserID3, pwd3))
(3, (UserID3, pwd3),(UserID4, pwd4))

如您所见,这 3 行由给定行的第 3 个占位符链接到下一行的第 2 个占位符(第 1 行和第 2 行由 (UserID2, pwd2) 链接;第 2 和第 3 行链接由 (UserID3, pwd3)。

我如何处理数据,以便我可以对常见项目进行重复数据删除并将结果作为 Rdd

((UserID1, pwd1),(UserID2, pwd2),(UserID3, pwd3),(UserID4, pwd4))

【问题讨论】:

    标签: scala apache-spark rdd


    【解决方案1】:

    可以使用flatMap 然后distinct 来实现。

    scala> rdd.map(s=>Seq(s._2,s._3)).flatMap(s=>s).distinct.foreach(println(_))
    

    输出:

    (UserID4,pwd4)
    (UserID2,pwd2)
    (UserID3,pwd3)
    (UserID1,pwd1)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-11-15
      • 2018-03-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多