spark 中 宽依赖 和 窄依赖的 区别及优缺点
原创it_liangsir 最后发布于2018-06-29 17:58:02 阅读数 3315 收藏
展开
窄依赖与宽依赖的概述:
rdd 中的–宽依赖—父RDD每个分区的数据可能被多个子RDD分区使用 ,子RDD分区通常对应所有的父RDD分区,这其中分为两种情况:1,一个父RDD的分区对应所有的子RDD的分区(没有core-patitioned过的join)2,一个父RDD分区对应非全部的的多个RDD分区(groupByKey)
rdd中的–窄依赖—父RDD每个分区的只被子RDD的一个分区使用,子RDD 通常对应常数个父RDD分区,这其中分为两种情况:1,一个子RDD分区对应一个父RDD分区(filter,map)2,一个子RDD分区对应多个父RDD分区(co-partitioned过的join)
窄依赖与宽依赖的优缺点:
宽依赖----有shuffle----要跨网络拉去数据-----耗资源,窄依赖----一个节点内完成转化-----快速
当子RDD 需要重算时,宽依赖 会重算所有父RDD分区的数据,这样会出现多余的重算,窄依赖只需计算对应的一个父RDD的数据即可
窄依赖:filter map flatmap mapPartitions
宽依赖:reduceByKey grupByKey combineByKey,sortByKey, join(no copartition)
————————————————
版权声明:本文为CSDN博主「it_liangsir」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_21918145/article/details/80859177