第16课
Spark RDD操作的种类
- transform
- action (触发结果的作业,取结果)
- controller (checkpoint,persist, including cache)
map(f:T=>U), U类型的集合产生新的RDD
reduce(f:(T,T)=>T), 元素之间要符合交换律(没有数据Order)和结合律(必须能结合才能reduce嘛,比如相加)
lazy的好处就是,步骤越多,优化的空间越大嘛。
问题:计算相同行,出现的总次数
var lines = sc.textFile()
val linesTuple = lines.map(line => (line,1)) // 每一行变成行的内容与1构成的Tuple
val timesKV linesTuple.reduceByKey(_+_)
timesKV.collect.foreach(pair => println(pair._1 + ":" + pair._2))
collect把结果收集到Driver。 没有collect,结果是分布在不同节点上的,返回一个Array。
好像知乎上评价不高?我比较后知后觉,作为Spark入门应该还不错吧。在2019年才开始看。。。
突然看到课程壁纸。 Who’s Ted Williams? 感觉有点像新东方的忽悠劲,至少听着不累!!!