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。
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。
相关文章推荐
- 泰勒python笔记一 :零碎知识
- python游戏初探:拍子打小球
- Python游戏引擎开发(七):绘制矢量图
- Python-Day01-task
- 编程学习第三天,更多的Python
- python爬虫小实例
- 用 python 实现一个多线程网页下载器
- JAVA web调用执行python脚本程序的四种方式,回避java.lang.OutOfMemoryError:PermGen space内存溢出问题
- python中时间、日期、时间戳之间的转换
- python:leetcode之Recover Binary Search Tree
- eventlet引发的学习-python如何利用多核CPU
- 简明 Python 编程规范
- Python 字符串方法详解
- 理解Python命名机制
- Python快速转换numpy数组中Nan和Inf的方法
- 用python实现基本A*算法
- 关于Python编程的一些问答
- python处理.seq文件
- 集体智慧编程——博客文章聚类-Python实现
- python基础(类,文件,struct,拷贝,集合)