Spark3000门徒第14课spark RDD解密总结

今晚听了王家林老师的第14课spark RDD解密,课堂笔记如下:

Spark是基于工作集的应用抽象,RDD:Resillient Distributed Dataset是基于工作集的,spark可以对结果重用。

位置感知:spark比hadoop更精致。

RDD是lazy的,是分布式函数式编程的抽象,RDD可以看做一个只读的List或者Array。产生的中间结果怎么办? 不能让
他立即计算,采用Lazy级别,只对数据处理做标记。所以RDD操作是有向的,链式的,所以Stage有1000个步骤,不需要999个中间结果,默认只产生一次结果。数据量越大,计算步骤越多,优势更明显。

protected def getPartitions: Array[Partition]

/*** :: DeveloperApi ::
* Implemented by subclasses to compute a given partition.
*/
@DeveloperApi
def compute(split: Partition, context: TaskContext): Iterator[T]

这样所有RDD操作返回一个迭代器,这样后续框架可以无缝集成,用迭代器来遍历结果就可以了,不需要知
道具体结构。

RDD缺陷:
不支持细粒度的更新操作以及增量迭代计算

 

后续课程可以参照新浪微博 王家林_DT大数据梦工厂:http://weibo.com/ilovepains

王家林  中国Spark第一人,微信公共号DT_Spark

 

转发请写明出处。

posted on 2016-01-17 23:44  HaiziS  阅读(357)  评论(0编辑  收藏  举报