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);