(二)spark算子 分为3大类
2017-03-23 19:21
141 查看
transgormation的算子对key-value类型的数据有三种:
(1)输入 与 输出为一对一关系
mapValue();针对key-value类型的数据并只对其中的value进行操作,不对key进行操作
![](https://oscdn.geek-share.com/Uploads/Images/Content/201908/09/29941589906df58962be2b4ad0b459af.jpg)
(2)对单个rdd聚集
combineByKey
相当于将(v1,2 v1,1)转为(v1,Seq(1,2))的rdd
![](https://oscdn.geek-share.com/Uploads/Images/Content/201908/09/c3532a0b780eb14ba2c363d42deb9d8c.jpg)
reduceByKey
就是将相同的key合并,算出他们的和
![](https://oscdn.geek-share.com/Uploads/Images/Content/201908/09/a5d16abc517abf238b189f9ddc39b2aa.jpg)
partitionBy
对rdd进行分区,如果原有的rdd与现在的rdd一致则不进行分区;如果不一致则根据分区策略生成一个新的rdd
![](https://oscdn.geek-share.com/Uploads/Images/Content/201908/09/858b445f600f6cbc62d26499dfbe0030.jpg)
(2)对两个rdd聚集
cogroup
对两个key-value的rdd,每个rdd相同的key的元素合并为一个集合,并且返回两个rdd中对应key元素的迭代器,
集合中的元素个数是相同的,没有则为null
![](https://oscdn.geek-share.com/Uploads/Images/Content/201908/09/29fb9d63fa1e9fb103543bd50cc7c83c.jpg)
join
join是先对rdd进行cogroup操作,然后再对新生成rdd,对key下的每个元素进行笛卡尔积操作,然后结果再平铺
![](https://oscdn.geek-share.com/Uploads/Images/Content/201908/09/e3434166fe8117d723d76f65356fc1a2.jpg)
leftOutJoin和rightOutJoin
leftOutJoin(左外链接)和rightOutJoin(又外链接)意思相当,先对 两个rdd进行join操作,他在对key下面每个元素进行笛卡尔积操作之前,先判断value不为null.
(1)输入 与 输出为一对一关系
mapValue();针对key-value类型的数据并只对其中的value进行操作,不对key进行操作
![](https://oscdn.geek-share.com/Uploads/Images/Content/201908/09/29941589906df58962be2b4ad0b459af.jpg)
(2)对单个rdd聚集
combineByKey
相当于将(v1,2 v1,1)转为(v1,Seq(1,2))的rdd
![](https://oscdn.geek-share.com/Uploads/Images/Content/201908/09/c3532a0b780eb14ba2c363d42deb9d8c.jpg)
reduceByKey
就是将相同的key合并,算出他们的和
![](https://oscdn.geek-share.com/Uploads/Images/Content/201908/09/a5d16abc517abf238b189f9ddc39b2aa.jpg)
partitionBy
对rdd进行分区,如果原有的rdd与现在的rdd一致则不进行分区;如果不一致则根据分区策略生成一个新的rdd
![](https://oscdn.geek-share.com/Uploads/Images/Content/201908/09/858b445f600f6cbc62d26499dfbe0030.jpg)
(2)对两个rdd聚集
cogroup
对两个key-value的rdd,每个rdd相同的key的元素合并为一个集合,并且返回两个rdd中对应key元素的迭代器,
集合中的元素个数是相同的,没有则为null
![](https://oscdn.geek-share.com/Uploads/Images/Content/201908/09/29fb9d63fa1e9fb103543bd50cc7c83c.jpg)
join
join是先对rdd进行cogroup操作,然后再对新生成rdd,对key下的每个元素进行笛卡尔积操作,然后结果再平铺
![](https://oscdn.geek-share.com/Uploads/Images/Content/201908/09/e3434166fe8117d723d76f65356fc1a2.jpg)
leftOutJoin和rightOutJoin
leftOutJoin(左外链接)和rightOutJoin(又外链接)意思相当,先对 两个rdd进行join操作,他在对key下面每个元素进行笛卡尔积操作之前,先判断value不为null.
相关文章推荐
- (一)spark算子 分为3大类
- (三)spark算子 分为3大类
- Spark算子--RDD的基本转换
- Spark算子:RDD行动Action操 4000 作(4)–countByKey、foreach、foreachPartition、sortBy
- Spark笔记整理(四):Spark RDD算子实战
- Spark算子:RDD行动Action操作(2)–take、top、takeOrdered
- 大数据算子(spark)
- Spark算子:RDD基本转换操作(2)–coalesce、repartition
- Spark算子:RDD基本转换操作(6)–zip、zipPartitions
- spark 算子
- Spark算子:RDD基本转换操作(1)–map、flagMap、distinct
- Spark算子:RDD行动Action操作(3)–aggregate、fold、lookup
- Spark 中算子功能与分类介绍
- Spark算子(六)
- Spark学习笔记-RDD简单算子
- Spark算子执行流程详解之三
- Spark编程之基本的RDD算子之fold,foldByKey,treeAggregate, treeReduce
- Spark算子选择策略
- [转]Spark算子
- Spark 算子分析