Spark的RDD编程实战案例

您所在的位置:网站首页 spark项目实战案例附源码 Spark的RDD编程实战案例

Spark的RDD编程实战案例

2023-10-11 17:04| 来源: 网络整理| 查看: 265

  DAG(Directed Acyclic Graph)叫做有向无环图,原始的RDD通过一系列的转换就就形成了DAG,根据RDD之间的依赖关系的不同将DAG划分成不同的Stage;    对于窄依赖,partition的转换处理在Stage中完成计算;

  对于宽依赖,由于有Shuffle的存在,只能在parent RDD处理完成后,才能开始接下来的计算,因此宽依赖是划分Stage的依据;

  如下图所示,是某个job分为3个阶段(stage),窄依赖可以放在同一个阶段(stage),而宽依赖由于shuffle的存在因此不能放在同一个阶段(state)中:    A和B:      groupBy操作是宽依赖,存在shuffle操作。      F和G:      join操作是宽依赖,存在shuffle操作。    B和G:      是窄依赖,以为B的各个分区和G的分区唯一对应。    E和F,D和F,C和D:      map和union均没有shuffle操作,因此均是宅依赖,因此他们可以在同一个阶段(stage)。

  温馨提示:    宽依赖有shufle操作,窄依赖没有shuffle操作,因此我们可以将宅依赖放在同一个阶段执行,而宽依赖则需要分开不同的阶段操作,因为宽依赖要做shuffle的前提是需要依赖上一个阶段的执行结果。    由于窄依赖不需要等待,就可以利用并行的概念来执行数据,从而提升效率。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3