一个RDD能不能按其元素分为很多个子RDD?

我的问题是这样的,我想把一个RDD按元素划分为多个RDD,然后把所有子RDD放到一个list里。有什么好方法吗?我知道有randomsplit,但我想以每个元素变成一个RDD。并且RDD是不能嵌套的。
还有就是我想到这样做,但我觉得反复用sc.makeRDD(x)是不行的,但我debug也不报错,就是打印不出来东西,请问sc.makeRDD()可以吗?下面是实现函数,其中rdd1就是父RDD。rdd1.foreach。谢谢大家了~
def splitRDD(rdd1:RDD[List[(String, String)]]):List[RDD[(String,String)]] ={
var list = ListRDD[(String,String)]
//println(rdd1.take(1).apply(0).apply(0)._1)
rdd1.foreach(x =>{
val ss =sc.makeRDD(x)

 }
   //println(x.apply(0)._1)



 ) 
 list

}

def splitRDD(rdd1:RDD[List[(String, String)]]):List[RDD[(String,String)]] ={
var list = ListRDD[(String,String)]
//println(rdd1.take(1).apply(0).apply(0)._1)
rdd1.foreach(x =>{
list = sc.makeRDD(x)::list

 }
   //println(x.apply(0)._1)



 ) 
 list

}
函数是这样写的

顶,希望有大神能帮忙解答

**
尝试了下,测试通过,你可以看下!

 def splitRDD(rdd1: org.apache.spark.rdd.RDD[List[(String, String)]]): List[org.apache.spark.rdd.RDD[(String,String)]] ={
    val lsts = rdd1.collect.toList
    lsts.map(lst => sc.makeRDD(lst))
}**