基础 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 方法,进行任务的真实触发
流程图待附