如何在Scala中转换下面提到的多维对象?

如何在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 = {

我想转换以下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 = {
    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))
      }
}

你能发布你尝试过但失败的代码吗?你能发布你尝试过但失败的代码吗?