map算子 会出现一对一的结果
将函数应用于 RDD 中的每个元素,将返回值构成新的 RDD
直接上到代码
ArrayList<Integer> list = new ArrayList<Integer>();
list.add(1);
list.add(2);
list.add(3);
list.add(4);
list.add(3);
JavaRDD<Integer> parallelize = sc.parallelize(list);
JavaRDD<Integer> map = parallelize.map(new Function<Integer, Integer>() {
@Override
public Integer call(Integer integer) throws Exception {
return integer + 1;
}
});
List<Integer> collect = map.collect();
for (Integer integer:collect){
System.out.println(integer);
}
结果:
20/05/13 16:51:41 INFO TaskSetManager: Finished task 0.0 in stage 0.0 (TID 0) in 51 ms on localhost (executor driver) (1/1)
20/05/13 16:51:41 INFO TaskSchedulerImpl: Removed TaskSet 0.0, whose tasks have all completed, from pool
20/05/13 16:51:41 INFO DAGScheduler: ResultStage 0 (collect at Testwordcount.java:87) finished in 0.094 s
20/05/13 16:51:41 INFO DAGScheduler: Job 0 finished: collect at Testwordcount.java:87, took 0.142422 s
2
3
4
5
4
maptopair 可以做一些数据类型的转换
代码如下 可以将 输入的(String,int等类型) 类型转换成Tuple2
ArrayList<Integer> list = new ArrayList<Integer>();
list.add(1);
list.add(2);
list.add(3);
list.add(4);
list.add(3);
JavaRDD<Integer> parallelize = sc.parallelize(list);
JavaPairRDD<Integer, Integer> integerIntegerJavaPairRDD = parallelize.mapToPair(new PairFunction<Integer, Integer, Integer>() {
@Override
public Tuple2<Integer, Integer> call(Integer integer) throws Exception {
return new Tuple2<Integer, Integer>(integer, 1);
}
});
List<Tuple2<Integer, Integer>> collect = integerIntegerJavaPairRDD.collect();
for (Tuple2<Integer, Integer> integer: collect){
System.out.println(integer);
}
结果:
(1,1)
(2,1)
(3,1)
(4,1)
(3,1)
本文介绍了Spark Java中map算子的使用,它会将函数应用于RDD的每个元素,产生一对一的结果。示例代码展示了map操作的具体应用。接着,文章讨论了mapToPair算子,该算子用于进行数据类型的转换,特别是将输入转换为Tuple2类型,以适应更复杂的处理需求。实验结果显示了map和mapToPair的应用效果。
1594

被折叠的 条评论
为什么被折叠?



