今晚听了王家林老师的Spark IMF传奇行动第16课RDD实战,课堂笔记如下:
RDD操作类型:Transformation、Action、Contoller
reduce要符合交换律和结合律
val textLines = lineCount.reduceByKey(_+_,1)
textLines.collect.foreach(pair=> println(pair._1 + "="+pair._2))
def collect(): Array[T] = withScope {
val results = sc.runJob(this, (iter: Iterator[T]) => iter.toArray)
Array.concat(results: _*)
}
可以看到collect返回的Array中就是一系列的元素Tuple
并行度不设置的话,则由 原始文件的数量和文件大小决定。
两个stage有可能在不同的节点上执行。
附图一枚:
后续课程可以参照新浪微博 王家林_DT大数据梦工厂:http://weibo.com/ilovepains
王家林 中国Spark第一人,微信公共号DT_Spark
转发请写明出处。