Spark IMF传奇行动第16课RDD实战总结

今晚听了王家林老师的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

转发请写明出处。

时间: 2024-12-29 07:47:36

Spark IMF传奇行动第16课RDD实战总结的相关文章

Spark IMF传奇行动第17课Transformations实战总结

今晚听了王家林老师的Spark IMF传奇行动第17课Transformations实战,作业是用SCALA写cogroup: def main(args: Array[String]): Unit = { val sc = sparkContext("Transformations") cogroupTrans(sc) sc.stop() } def cogroupTrans(sc:SparkContext): Unit ={ val stuNames = Array( Tuple2

Spark IMF传奇行动第18课:RDD持久化、广播、累加器总结

昨晚听了王家林老师的Spark IMF传奇行动第18课:RDD持久化.广播.累加器,作业是unpersist试验,阅读累加器源码看内部工作机制: scala> val rdd = sc.parallelize(1 to 1000) rdd: org.apache.spark.rdd.RDD[Int] = ParallelCollectionRDD[0] at parallelize at <console>:21 scala> rdd.persist res0: rdd.type

Spark IMF传奇行动第22课:RDD的依赖关系彻底解密

版权声明:本文为博主原创文章,未经博主允许不得转载.作者:HaiziS 昨晚听了王家林老师的Spark IMF传奇行动第22课:RDD的依赖关系彻底解密,笔记如下: 1,窄依赖是指每个父RDD的一个Partition最多被子RDD的一个Partition所使用,例如map.filter.union等都会产生窄依赖: 2宽依赖是指一个父RDD的Partition会被多个子RDD的Partition所使用,例如groupByKey.reduceByKey.sortByKey等操作都会产生宽依赖 表面

Spark IMF传奇行动第19课:spark排序总结

今晚听了王家林老师的Spark IMF传奇行动第19课:spark排序,作业是:1.scala 实现二次排序,使用object apply 2:自己阅读RangePartitioner 代码如下: /** * Created by 王家林 on 2016/1/10. */ object SecondarySortApp { def main(args: Array[String]){ val conf = new SparkConf() //创建SparkConf对象 conf.setAppNa

Spark IMF传奇行动第21课:从Spark架构中透视Job

版权声明:本文为博主原创文章,未经博主允许不得转载.作者:HaiziS 昨晚听了王家林老师的Spark IMF传奇行动第21课:从Spark架构中透视Job,笔记如下: 默认一个worker有一个executor,也可以设置多个,当cpu利用不足时. 并行度也是被继承的 当Spark集群启动的时候,首先启动Master进程负责整个集群资源管理和分配并接受作业的提交且为作业分配计算资源,每个工作节点默认启动一个Worker Process来管理当前节点的mem,cpu等计算资源并且向Master汇

Spark IMF传奇行动第20课:top N总结

版权声明:本文为博主原创文章,未经博主允许不得转载.作者:HaiziS 今晚听了王家林老师的Spark IMF传奇行动第20课:top N,作业是:scala写topGroup,且对组名key排序 代码如下: def main(args: Array[String]){ val conf = new SparkConf() //创建SparkConf对象 val sc = new SparkContext(conf) //通过传入SparkConf实例来定制Spark运行具体参数和配置信息来创建

IMF传奇行动第82课:Spark Streaming第一课:案例动手实战并在电光石火间理解其工作原理

 流(Streaming),在大数据时代为数据流处理,就像水流一样,是数据流:既然是数据流处理,就会想到数据的流入.数据的加工.数据的流出. 日常工作.生活中数据来源很多不同的地方.例如:工业时代的汽车制造.监控设备.工业设备会产生很多源数据:信息时代的电商网站.日志服务器.社交网络.金融交易系统.黑客攻击.垃圾邮件.交通监控等:通信时代的手机.平板.智能设备.物联网等会产生很多实时数据,数据流无处不在. 在大数据时代SparkStreaming能做什么? 平时用户都有网上购物的经历,用户在

大数据Spark蘑菇云前传第16课:Scala implicits编程彻底实战及Spark源码鉴赏(学习笔记)

本課課程: Spark源码中的Scala的 implicit 的使用 Scala的 implicit 编程操作实战 Scala的 implicit 企业级最佳实践 Spark源码中的Scala的 implicit 的使用 這個東西意義非常重大,RDD 本身沒有所謂的 Key, Value,只不過是自己本身解讀的時候把它變成 Key Value 的方法去解讀,RDD 本身就是一個 Record. RDD 本身沒有 reduceByKey,它是用了隐式转换,转换了PairRDDPartition 類

16.RDD实战

第16课:RDD实战 由于RDD的不可修改的特性,导致RDD的操作与正常面向对象的操作不同,RDD的操作基本分为3大类:transformation,action,contoller 1.   Transformation Transformation是通过转化针对已有的RDD创建出新的RDD map(func):对调用map的RDD数据集中的每个element都使用func,然后返回一个新的RDD,这个返回的数据集是分布式的数据集 filter(func): 对调用filter的RDD数据集中