我意识到RDD的窄变换和宽变换之间的区别。我的问题是哪些参数可以证明map,flatmap是窄的?为什么这些转变不宽?有关RDD学习材料的任何建议表示赞赏。
答案 0 :(得分:7)
- 狭义依赖:像map,union,filter这样的RDD操作可以在单个分区上运行,并将该分区的数据映射到生成的单个分区。将数据从一个分区映射到一个分区的这种操作称为窄操作。狭窄的操作不需要跨分区分发数据。
- 广泛的依赖性:像groupByKey,distinct,join这样的RDD操作可能需要在新RDD中跨分区映射数据。将数据从一个分区映射到多个分区的这类操作称为“宽操作”
另一种思考方式就是这样。子RDD的任何行仅取决于父RDD的1行。由于每个子行可以指向它所依赖的1个父行,因此存在一个狭窄的依赖关系。