Apache Spark mapPartitionsWithIndex

有人能举例说明在Java中正确使用mapPartitionsWithIndex吗? 我发现了许多Scala示例,但缺少Java。 我的理解是正确的,使用此函数时,单独的节点将处理单独的分区。

我收到以下错误

method mapPartitionsWithIndex in class JavaRDD cannot be applied to given types; JavaRDD rdd = sc.textFile(filename).mapPartitionsWithIndex required: Function2<Integer,Iterator,Iterator>,boolean found: <anonymous Function2<Integer,Iterator,Iterator<JavaRDD>>> 

做的时候

 JavaRDD rdd = sc.textFile(filename).mapPartitionsWithIndex( new Function2<Integer, Iterator, Iterator<JavaRDD> >() { @Override public Iterator<JavaRDD> call(Integer ind, String s) { 

这是我用来删除csv文件第一行的代码:

 JavaRDD rawInputRdd = sparkContext.textFile(dataFile); Function2 removeHeader= new Function2, Iterator>(){ @Override public Iterator call(Integer ind, Iterator iterator) throws Exception { if(ind==0 && iterator.hasNext()){ iterator.next(); return iterator; }else return iterator; } }; JavaRDD inputRdd = rawInputRdd.mapPartitionsWithIndex(removeHeader, false);