aboutsummaryrefslogtreecommitdiff
path: root/core/src/main/scala/spark/rdd/FilteredRDD.scala
blob: c84ec39d21ff7e8f8414a08920a52c285b689d8e (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, Partition, TaskContext}

private[spark] class FilteredRDD[T: ClassManifest](
    prev: RDD[T],
    f: T => Boolean)
  extends RDD[T](prev) {

  override def getPartitions: Array[Partition] = firstParent[T].partitions

  override val partitioner = prev.partitioner    // Since filter cannot change a partition's keys

  override def compute(split: Partition, context: TaskContext) =
    firstParent[T].iterator(split, context).filter(f)
}