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

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

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

0
dhiraj 18 Окт 2019 в 02:34

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)
1
João Guitana 18 Окт 2019 в 03:48