Simillar question was asked before: http://apache-spark-user-list.1001560.n3.nabble.com/Rdd-of-Rdds-td17025.html
Here is one of the reasons why I think RDD[RDD[T]] is not possible: - RDD is only a handle to the actual data partitions. It has a reference/pointer to the *SparkContext* object (*sc*) and a list of partitions. - The *SparkContext *is an object in the Spark Application/Driver Program's JVM. Similarly, the list of partitions is also in the JVM of the driver program. Each partition contains kind of "remote references" to the partition data on the worker JVMs. - The functions passed to RDD's transformations and actions execute in the worker's JVMs on different nodes. For example, in "*rdd.map { x => x*x }*", the function performing "*x*x*" runs on the JVMs of the worker nodes where the partitions of the RDD reside. These JVMs do not have access to the "*sc*" since its only on the driver's JVM. - Thus, in case of your *RDD of RDD*: *outerRDD.map { innerRdd => innerRDD.filter { x => x*x } }*, the worker nodes will not be able to execute the *filter* on *innerRDD *as the code in the worker does not have access to "sc" and can not launch a spark job. Hope it helps. You need to consider List[RDD] or some other collection. -Kiran On Tue, Jun 9, 2015 at 2:25 AM, ping yan <sharon...@gmail.com> wrote: > Hi, > > > The problem I am looking at is as follows: > > - I read in a log file of multiple users as a RDD > > - I'd like to group the above RDD into *multiple RDDs* by userIds (the > key) > > - my processEachUser() function then takes in each RDD mapped into > each individual user, and calls for RDD.map or DataFrame operations on > them. (I already had the function coded, I am therefore reluctant to work > with the ResultIterable object coming out of rdd.groupByKey() ... ) > > I've searched the mailing list and googled on "RDD of RDDs" and seems like > it isn't a thing at all. > > A few choices left seem to be: 1) groupByKey() and then work with the > ResultIterable object; 2) groupbyKey() and then write each group into a > file, and read them back as individual rdds to process.. > > Anyone got a better idea or had a similar problem before? > > > Thanks! > Ping > > > > > > > -- > Ping Yan > Ph.D. in Management > Dept. of Management Information Systems > University of Arizona > Tucson, AZ 85721 > >