У меня есть список, содержащий кортежи 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"))
Как мне это сделать?
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)
Похожие вопросы
Новые вопросы
scala
Scala - это язык программирования общего назначения, в основном предназначенный для виртуальной машины Java. Разработанный для краткого, элегантного и безопасного для типов представления общих шаблонов программирования, он сочетает в себе как императивный, так и функциональный стили программирования. Его ключевые особенности: продвинутая система статического типа с выводом типа; типы функций; сопоставления с образцом ; неявные параметры и преобразования; перегрузка оператора; полная совместимость с Java; совпадение