一、 DAG定义
DAG每个节点代表啥?代表的一个RDD
1) 一个RDD生成两个RDD:
RDD2 = RDD1.filter(xxxxx)
RDD3 = RDD1.filter(yyyy)
是从RDD1到RDD2,RDD3这样的过程
2) Union是两个RDD合并成一个的过程
则是RDD2 RDD3变成RDD4的过程
3) filter/map/reduceByKey 应该都是一条直线
是从RDD4到RDD5这样的过程
上述都是transformation
RDD5.collect(); //action
RDD5.foreach(); //action
这种则会生成两个job,会顺序提交,前一个job执行结束之后才会提交下一个job(假设上述代码都在一个线程中)
(可以和上一章中Persist中的job提交对照看)
(二)、RDD依赖关系
RDD依赖关系,也就是有依赖的RDD之间的关系,比如RDD1------->RDD2(RDD1生成RDD2),RDD2依赖于RDD1。这里的生成也就是RDDtransformation操作
窄依赖(也叫narrow依赖)
从父RDD角度看:一个父RDD只被一个子RDD分区使用。父RDD的每个分区最多只能被一个Child RDD的一个分区使用
从子RDD