【Spark亚太研究院系列丛书】Spark实战高手之路-第3章Spark架构设计与编程模型第2节②

三, Spark的RDD

在Spark中一切都是以RDD为基础和核心的:

 

【Spark亚太研究院系列丛书】Spark实战高手之路-第3章Spark架构设计与编程模型第2节②

每个RDD的API如下所示:

【Spark亚太研究院系列丛书】Spark实战高手之路-第3章Spark架构设计与编程模型第2节②

Spark官方文档中给出了的众多的RDD:

【Spark亚太研究院系列丛书】Spark实战高手之路-第3章Spark架构设计与编程模型第2节②

RDD中的操作分为transformations和actions两种:

【Spark亚太研究院系列丛书】Spark实战高手之路-第3章Spark架构设计与编程模型第2节②

下面举一个例子来说明RDD的使用:

【Spark亚太研究院系列丛书】Spark实战高手之路-第3章Spark架构设计与编程模型第2节②

另外有两个特殊的RDD:

【Spark亚太研究院系列丛书】Spark实战高手之路-第3章Spark架构设计与编程模型第2节②

他们都是controlling operations:

【Spark亚太研究院系列丛书】Spark实战高手之路-第3章Spark架构设计与编程模型第2节②

RDD在执行的时候都是并行的:

【Spark亚太研究院系列丛书】Spark实战高手之路-第3章Spark架构设计与编程模型第2节②

四, Spark的高容错机制lineage

基于DAG图,lineage是轻量级而高效的:

【Spark亚太研究院系列丛书】Spark实战高手之路-第3章Spark架构设计与编程模型第2节②

操作之间相互具备lineage的关系,每个操作只关心其父操作,各个分片的数据之间互不影响,出现错误的时候只要恢复单个Split的特定部分即可:

【Spark亚太研究院系列丛书】Spark实战高手之路-第3章Spark架构设计与编程模型第2节②

 

你可能感兴趣的:(【Spark亚太研究院系列丛书】Spark实战高手之路-第3章Spark架构设计与编程模型第2节②)