如何在Scala中转换下面提到的多维对象?
我想转换以下RDD如何在Scala中转换下面提到的多维对象?,scala,apache-spark,Scala,Apache Spark,我想转换以下RDD (4,List((5,List(8, 9, 4, 6)))) 到 我尝试过使用map/flatMap,但无法实现。有人能在scala中帮我解决这个问题吗?我不确定您是否需要针对这个特定情况的解决方案,或者您需要一个包含大量嵌套列表的解决方案。如果只是针对这一特定情况,那么这可能就是解决方案 val value: (Int, List[(Int, List[Int])]) = (4, List((5, List(8, 9, 4, 6)))) val toList = {
(4,List((5,List(8, 9, 4, 6))))
到
我尝试过使用map/flatMap,但无法实现。有人能在scala中帮我解决这个问题吗?我不确定您是否需要针对这个特定情况的解决方案,或者您需要一个包含大量嵌套列表的解决方案。如果只是针对这一特定情况,那么这可能就是解决方案
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)
}
)
})
}
我不确定您是否需要针对这种特定情况的解决方案,或者您需要一个包含大量嵌套列表的解决方案。如果只是针对这一特定情况,那么这可能就是解决方案
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)
}
)
})
}
你可以这样做
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))
}
}
你可以这样做
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))
}
}
你能发布你尝试过但失败的代码吗?你能发布你尝试过但失败的代码吗?