Я хотел бы преобразовать следующую СДР
(4,List((5,List(8, 9, 4, 6))))
в
(4,5,8),(4,5,9),(4,5,4),(4,5,6)
Я пробовал использовать карту / flatMap, но не смог ее достичь. Может ли кто-нибудь помочь мне с этим в scala?
Вы можете сделать что-то вроде этого
val rdd = sc.parallelize(List((4,List((5,List(8, 9, 4, 6)))))) val res = rdd.flatMap{ case (v1, l) => l.flatMap{ case (v2, l2) => l2.map(v3 => (v1, v2, v3)) } }
Я не уверен, что вам нужно что-то для этого конкретного случая c, или вам нужно решение, которое будет иметь несколько различных вложенных списков. Если это только для этого конкретного случая c, то это может быть решением
val value: (Int, List[(Int, List[Int])]) = (4, List((5, List(8, 9, 4, 6)))) val toList = { value._2.flatMap(obj => { obj._2.map(obj2 => { (value._1, obj._1, obj2) } ) }) }