Spark(八)—— RDD依赖关系和Spark任务中的Stage
依赖关系
-
窄依赖
比喻为独生子女。每一个父RDD分区,最多被子RDD的一个分区使用。eg:map,filter,union
-
宽依赖
多个子RDD分区,依赖同一个父RDD分区。eg:groupByKey
任务划分阶段的依据:宽依赖
DAG(Directed Acyclic Graph)叫做有向无环图,原始的RDD通过一系列的转换就形成了DAG,根据RDD之间的依赖关系的不同将DAG划分成不同的Stage,对于窄依赖,partition的转换处理在Stage中完成计算。对于宽依赖,由于有Shuffle的存在,只能在parent RDD处理完成后,才能开始接下来的计算,因此宽依赖是划分Stage的依据。