一个 MapReduce 任务只能包含一次 Map 和一次 Reduce,一个Spark 任务并不止包含一个Map 和
一个Reduce,而是由一系列的Map、Reduce构成。这样,计算的中间结果可以高效地转给下一个计算步
骤,提高算法性能
Spark中最核心的概念是RDD(弹性分布式数据集),分布式数据集可以在不同的并行环境当中被重复使用,
MapReduce这些并行计算大都是基于非循环的数据流模型,每次计算完毕后会将计算结果输入写回到磁盘中,
若是出现循环计算,那么在计算过程中会不断重复的将计算结果写到磁盘中,占用大量资源
分批次批量提交数据
object 03YmForeachPartiosOPs {
def main(args:Array[String]): Unit = {
val conf = new SparkConf()
.setAppName(“03YmForeachPartiosOPs")
.setMaster(“local[2]”)
val sc = new SparkContext(conf)
val lines = sc.textFile(“file:///D:/bd1901/data/1行数据.txt”)
val rbkRDD:RDD[(String,Int)] = lines.flatMap(.split(”\s+")).map((,1)).reduceByKey(+)
foreachOps6(rbkRDD)
sc.stop()
}
private def foreachOps6(rbkRDD:RDD[(String,Int)]) = {
rbkRDD.fo