我们所说的RDD在DAG图计算之后,就生成了所谓的stage和task,而整个RDD链描述的就是一个计算过程(这也是spark中的一个思想:数据要用的时候才计算),而这个stage是怎么形成的呢?
友情提醒:下一遍将总结一下spark中的job
整个computing chain 根据数据依赖关系自后向前建立,遇到ShuffleDependency后形成stage。在每个stage 中,每个RDD中的compute() 调用 parentRDD.iter()来将parent RDDs中的records一个个fetch 过来。
如果要自己设计一个 RDD,那么需要注意的是 compute() 只负责定义 parent RDDs => output records 的计算逻辑,具体依赖哪些 parent RDDs 由 getDependency( ) 定义,具体依赖 parent RDD 中的哪些 parti ti ons 由dependency.getParents( ) 定义。