文章目录


宅依赖

一个父RDD 对应一个子RDD 例如map ,filter

多个父RDD 对应一个子RDD 利于union

宽依赖

一个父RDD对应一个子RDD例如groupByKey,父RDD中某个分区被子RDD多个分区依赖

多个父RDD对应一个子RDD

宽依赖必定伴随着shuffle存在

一个RDD的依赖关系只能是宽窄二选一

以worldCount解析宽窄依赖

import org.apache.spark.{HashPartitioner, SparkConf, SparkContext}

object TestSpark {
def main(args: Array[String]): Unit = {
val conf = new SparkConf()
.setMaster("local[*]")
.setAppName("Chapter5_2_1_8")
val sc = new SparkContext(conf)
val r1 = sc.textFile("e://data/1.data")
r1.flatMap(_.split("\t")).map((_,1)).reduceByKey(_+_,1).collect()
sc.stop()
}
}

1.产生job,提交Master之后会产生 application,随即产生一个Driver进程,执行多少次action操作,就会产生多少个job

flatMap:窄依赖

map:窄依赖

reduceByKey:宽依赖