【问题标题】:Create RDD using key and value使用键和值创建 RDD
【发布时间】:2020-02-14 22:18:04
【问题描述】:

我有一个包含字符串元组的列表

list = [("A", "B"), ("B", "C"), ("B", "D")]

我有一个包含

的哈希图
hash_map = ("A"-> List("B"), "B" -> List("C", "D"))

我想循环遍历list并按以下方式创建一个RDD,

RDD = [("A", "C"), ("A", "D")]

我试过这样做,

val result = list.map(d => (d._1, hash_map.get(d._2).map(v => v)))

但是,它会返回

OUTPUT:
("A", List("C", "D"))

我应该怎么做?

【问题讨论】:

    标签: scala apache-spark rdd


    【解决方案1】:

    不确定这与 RDD 有什么关系,但这会得到你想要的结果。

    val list = List(("A", "B"), ("B", "C"), ("B", "D"))
    
    val hashMap = Map("A"-> List("B"), "B" -> List("C", "D"))
    
    val r = list.flatMap { case (a, b) =>
      hashMap.getOrElse(b, Nil).map((a, _))
    }
    
    println(r)
    

    【讨论】:

      猜你喜欢
      • 2016-08-10
      • 1970-01-01
      • 1970-01-01
      • 2019-11-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-11
      相关资源
      最近更新 更多