Создать RDD, используя ключ и значение - PullRequest
0 голосов
/ 18 октября 2019

У меня есть список, который содержит кортежи String

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

, и у меня есть хэш-карта, содержащая

hash_map = ("A"-> List("B"), "B" -> List("C", "D"))

Я хочу перебрать list и создать СДРследующим образом,

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"))

Как мне это сделать?

1 Ответ

1 голос
/ 18 октября 2019

Не уверен, что это имеет отношение к СДР, но это дает вам желаемый результат.

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)
...