开发者学堂课程【大数据 Spark 2020版(知识精讲与实战演练)第三阶段:Spark 原理_逻辑图_RDD 之间的多对一】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/689/detail/12013
Spark 原理_逻辑图_RDD 之间的多对一
内容简介
一、了解 RDD 之间有哪些依赖关系
二、回顾一对一的关系
三、多对一的关系
一、了解 RDD 之间有哪些依赖关系
1.一对一的关系
2.多对一的关系
二、回顾一对一的关系
1.前面已经讲到了 textRDD ,splitRDD ,tupleRDD 中的各个分区都是一一对应的,后者的分区数据来源于前者,通过计算得到。
2.通过 textfile 读取,flatmap 展开,map 赋予词频
三、多对一的关系
举例
1.ReduceRDD 中的 p1 来源于 tupleRDD 中 p1、p2、p3的任何一个或多个,如下图:
TupleRDD:已经赋予初始词频的 RDD
ReduceRDD:经过 reduceByKey 处理生成的 RDD 类型:shuffledRDD
2.去掉两个 reducer 端的分区,只留下一个的话,reduceRDD 中的 p1,来源于 tupleRDD 中的 p1、p2和 p3,如图:
这一关系体现了多对一的关系
RDD 之间的关系,就是分区之间的关系 tupleRDD 中的分区,与 reduceRDD 之间的分区,就是多对一关系。
// tupleRDD 的 p1 分区可能存 hadoop 1,p2分区也存 hadoop 1,p3 相同,这三个分区都要转化到 reduceRDD 中进行处理,所以这就是多对一的关系。