Spark中的常用算子(map,mapPartitions,foreach,foreachPatition)
前言
map:用于遍历RDD,将函数应用于每一个元素,返回新的RDD(transformation算子)
foreach:用于遍历RDD,将函数应用于每一个元素,无返回值(action算子)
mapPatitions:用于遍历操作RDD中的每一个分区,返回生成一个新的RDD(transformation算子)
foreachPatition:用于遍历操作RDD中的每一个分区,无返回值(action算子)
总结:一般使用mapPatitions和foreachPatition算子比map和foreach更加高效,推荐使用。
RDD的操作
今天学习了一下Spark中的RDD的编程,熟悉了一下RDD常用的接口,看到网上有一道题,使用RDD的接口去实现了一下,RDD编程确实强大!
练习题目
如下:在(ip user)的键值对中(空格分隔),如
a.text
127.0.0.1 xiaozhang
127.0.0.1 xiaoli
127.0.0.2 wangwu
127.0.0.3 lisi
…..
B.text
127.0.0.4 lixiaolu
127.0.0.5 lisi
127.0.0.3 zhangsan