spark中什么是宽依赖,什么是窄依赖?哪些算子是宽依赖,哪些是窄依赖?
时间: 2023-12-19 16:05:18 浏览: 398
Spark基础知识04——窄依赖、宽依赖、DAG、缓存
在Spark中,宽依赖和窄依赖是指RDD之间的依赖关系。宽依赖意味着一个父RDD分区的数据被多个子RDD的分区所使用,而窄依赖意味着每个父RDD分区的数据仅被一个子RDD的分区所使用。
窄依赖的算子有:map、filter、union、distinct、groupByKey、reduceByKey、combineByKey、flatMap、mapPartitions、mapPartitionsWithIndex等。
宽依赖的算子有:cogroup、groupWith、join、leftOuterJoin、rightOuterJoin、fullOuterJoin、sortByKey、partitionBy等。
在计算过程中,窄依赖的RDD可以通过并行计算来提高计算效率,而宽依赖的RDD需要进行数据的shuffle,因此计算效率较低。因此,为了提高Spark应用的性能,应该尽量使用窄依赖的算子。
阅读全文