job 触发源码分析


基础 wordCount.scala 小应用
(1)val lines = sc.textFile()
(2)val words = lines.flatMap(line => line.split(" "))
(3)val pairs = words.map(word => (word, 1))
(4)val counts = pairs.reduceByKey(_ + _)
(5)counts.foreach(count => println(count._1 + ": " + count._2))


1.textFile()
(1)hadoopFile(K,V) ——》 创建一个HadoopRDD,为(key,value)pair 格式
key是hdfs或文本文件的每一行的offset,value是文本
(2)在调用 map()方法,只获取value值,获取一个 MapPartitionsRDD
 jbConf:重点的任务配置

3.map() 方法存在于 RDD.scala 里面,进行聚合操作

4.对RDD调用reduceByKey()方法的时候,会触发scala的隐式转换;
在RDD.scala中找到了rddToPairRDDFunctions()隐式转换,然后将RDD转换为PairRDDFunctions,再次调用reduceByKey()方法

5.foreach()方法中,存在 SparkContext.runJob 方法,再次调用dagScheduler.runJob 方法,进行任务的真实触发

流程图待附

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值