地图转换为何狭窄?

时间:2016-06-10 19:08:36

标签: java scala apache-spark rdd

我意识到RDD的窄变换和宽变换之间的区别。我的问题是哪些参数可以证明map,flatmap是窄的?为什么这些转变不宽?有关RDD学习材料的任何建议表示赞赏。

1 个答案:

答案 0 :(得分:7)

Here is one explanation

  

- 狭义依赖:像map,union,filter这样的RDD操作可以在单个分区上运行,并将该分区的数据映射到生成的单个分区。将数据从一个分区映射到一个分区的这种操作称为窄操作。狭窄的操作不需要跨分区分发数据。

     

- 广泛的依赖性:像groupByKey,distinct,join这样的RDD操作可能需要在新RDD中跨分区映射数据。将数据从一个分区映射到多个分区的这类操作称为“宽操作”

另一种思考方式就是这样。子RDD的任何行仅取决于父RDD的1行。由于每个子行可以指向它所依赖的1个父行,因此存在一个狭窄的依赖关系。

相关问题