diff --git a/core/src/main/scala/org/apache/spark/api/java/JavaRDDLike.scala b/core/src/main/scala/org/apache/spark/api/java/JavaRDDLike.scala index 7e6e691f11c9d1d57d9db3e0eac37d64f3de71ce..9ad175ec193a57fd07b9fd26a460b8e35e13c0b6 100644 --- a/core/src/main/scala/org/apache/spark/api/java/JavaRDDLike.scala +++ b/core/src/main/scala/org/apache/spark/api/java/JavaRDDLike.scala @@ -67,6 +67,14 @@ trait JavaRDDLike[T, This <: JavaRDDLike[T, This]] extends Serializable { def map[R](f: JFunction[T, R]): JavaRDD[R] = new JavaRDD(rdd.map(f)(f.returnType()))(f.returnType()) + /** + * Return a new RDD by applying a function to each partition of this RDD, while tracking the index + * of the original partition. + */ + def mapPartitionsWithIndex(f: JFunction2[Int, T, R], + preservesPartitioning: Boolean = false): JavaRDD[R] = + new JavaRDD(MapPartitionsWithIndexRDD(this, sc.clean(f), preservesPartitioning)) + /** * Return a new RDD by applying a function to all elements of this RDD. */