PairFaltMapFunction 类似java8的flatmap方法,会返回一个value为集合的map.
在这里需要注意的是实现PairFaltMapFunction
Java版本 spark2.0以下
JavaPairRDD<String, Integer> wordPairRDD = lines.flatMapToPair(new PairFlatMapFunction<String, String, Integer>() {
@Override
public Iterable<Tuple2<String, Integer>> call(String s) throws Exception {
//TODO
return List;
}
});
java版本 spark2.0以上
主要是iterator和iteratable的一些区别
JavaPairRDD<String, Integer> wordPairRDD = lines.flatMapToPair(new PairFlatMapFunction<String, String, Integer>() {
@Override
public Iterator<Tuple2<String, Integer>> call(String s) throws Exception {
return List.iterator();
}
});
所以java引入的Spark包版本一定要跟服务器上运行的Spark版本相符,不然就会出现 AbstractMethodError