文章目录


宅依赖

一个父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:宽依赖