您的位置:首页 > 编程语言 > Python开发

python下spark_RDD认识与操作

2016-03-06 20:12 387 查看
RDD是一个不可修改的,分布的对象集合。每个RDD由多个分区组成,每个分区可以同时在集群中的不同节点上计算。RDD可以包含Python,Java和Scala中的任意对象。

1.RDD不存在迭代器,遍历需要使用foreach()函数

2.RDD的子元素是list,具有迭代器

3.transformation接受RDD,返回RDD。转换采用惰性调用机制,每个RDD记录父RDD转换的方法,这种调用链表称之为血缘(lineage)。采用惰性调用,通过血缘连接的RDD操作可以管道化(pipeline),管道化的操作可以直接在单节点完成,避免多次转换操作之间数据同步的等待

4.RDD数据只读,不可修改。如果需要修改数据,必须从父RDD转换(transformation)到子RDD

5.transformation是向后延迟的

6.RDD目前提供两个数据同步的方法:广播和累计器。

7.需要使用多次的数据需要cache,否则会进行不必要的重复操作

8.RDD的转换是并行化计算的,RDD的多个转换同样也是可以并行的。

9.每个action都是一个单独的job。

10.persis:持久化RDD,修改了RDD的meta Info中的stora leve;checkpoint:持久化RDD的同时切断Lineage,修改RDD的meta
info中的lineage。均返回经过修改的RDD对象滋生而非新的RDD。




内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: