任务描述
本关任务:使用 Spark 的map算子按照相关需求完成转换操作。
相关知识
为了完成本关任务,你需要掌握:如何使用map算子。
map
将原来RDD的每个数据项通过map中的用户自定义函数f映射转变为一个新的元素。
图中每个方框表示一个RDD分区,左侧的分区经过自定义函数f:T->U映射为右侧的新RDD分区。但是,实际只有等到Action算子触发后,这个f函数才会和其他函数在一个Stage中对数据进行运算。
map 案例
List list = Arrays.asList(1, 2, 3, 4, 5, 6);
System.out.println(“init:” + list);
JavaRDD rdd = sc.parallelize(list);
JavaRDD map = rdd.map(x -> x * 2);
System.out.println(“result :” + map.collect());
输出:
init :[1, 2, 3, 4, 5, 6]
result :[2, 4, 6, 8, 10, 12]
说明:rdd1的元素(1 , 2 , 3 , 4 , 5 , 6)经过map算子(x -> x*2)转换成了rdd2(2 , 4 , 6 , 8 , 10)
编程要求
根据提示,在右侧编辑器begin-end处补充代码,完成以下需求:
需求1:使用map算子,将rdd的数据(1, 2, 3, 4, 5)按照下面的规则进行转换操作,规则如下:<