python下spark_RDD认识与操作

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。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值