aboutsummaryrefslogtreecommitdiff
path: root/core/src/main/scala/spark/rdd/FlatMappedRDD.scala
blob: 785662b2da74355fc77caf9b352179f4c34e0a09 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
package spark.rdd

import spark.{OneToOneDependency, RDD, Split, TaskContext}

private[spark]
class FlatMappedRDD[U: ClassManifest, T: ClassManifest](
    prev: RDD[T],
    f: T => TraversableOnce[U])
  extends RDD[U](prev.context) {

  override def splits = prev.splits
  override val dependencies = List(new OneToOneDependency(prev))

  override def compute(split: Split, context: TaskContext) =
    prev.iterator(split, context).flatMap(f)
}