Spark学习(一)--RDD操作
标签(空格分隔): 学习笔记
Spark编程模型的两种抽象:RDD(Resilient Distributed Dataset)和两种共享变量(支持并行计算的广播变量和累加器)。
RDD
RDD是一种具有容错性的基于内存的集群计算方法。
RDD特征:
- 分区(partition):有一个数据分片列表,能够将数据进行切分,切分后的数据能够进行并行极端,是数据集的原子组成部分;
- 函数(compute):计算每个分片,得出一个可遍历的结果,用于说明在父RDD上执行何种计算;
- 依赖(dependency):计算每个RDD对父RDD的依赖列表,源RDD没有依赖,通过依赖关系描述血统(lineage);
- 优先位置:每一个分片的优先计算位置;
- 分区策略:描述分区模式和数据存放的位置,
常用的RDD有很多种,每个Transformation操作都会产生一种RDD。
RDD依赖
- 窄依赖(narrow dependency)
窄依赖是指父RDD的每一个分区都最多被一个子RDD的分区所使用。表现为一父一子或者多父一子。 - 宽依赖(wide dependency)
子RDD的每个分区都依赖于所有父RDD的所有分区或者多个分区。
创建RDD
- 集合(数组)创建RDD
通过并行集合(数组)创建RDD,主要调用SParkContext的parallelize方法; - 存储创建RDD
可以从各种分布式文件创建,也可以从支持Hadoop输入格式数据源创建。
RDD操作
应用逻辑是通过一系列Transformation和Action来表达的,前者在RDD之间指定处理的相互依赖关系,后者指定输出的形式。
- Transformation:是指该操作从已经存在的数据及上创建一个新的数据集,是数据集的逻辑操作,并没有进行真正的计算;
- Action:指该方法提交一个与前一个Action之间的所有Transformation组成的job进行计算,Spark会根据Action将作业切分成多个Job。·
共享变量
广播变量
可以在内的所有节点中被访问,用户缓存变量(只读);val broadcastVar = sc.broadcast(Array(1,2,3))
累加器
只能用来做加法的变量,如计数和求和。val accum = sc.accumulator(0)
Spark学习(一)--RDD操作的更多相关文章
- Spark学习之RDD编程(2)
Spark学习之RDD编程(2) 1. Spark中的RDD是一个不可变的分布式对象集合. 2. 在Spark中数据的操作不外乎创建RDD.转化已有的RDD以及调用RDD操作进行求值. 3. 创建RD ...
- Spark学习之RDD
RDD概述 什么是RDD RDD(Resilient Distributed Dataset)叫做弹性分布式数据集,是Spark中最基本的数据抽象,它代表一个不可变.可分区.里面的元素可并行计算的集合 ...
- Spark学习之RDD编程总结
Spark 对数据的核心抽象——弹性分布式数据集(Resilient Distributed Dataset,简称 RDD).RDD 其实就是分布式的元素集合.在 Spark 中,对数据的所有操作不外 ...
- Spark学习笔记——RDD编程
1.RDD——弹性分布式数据集(Resilient Distributed Dataset) RDD是一个分布式的元素集合,在Spark中,对数据的操作就是创建RDD.转换已有的RDD和调用RDD操作 ...
- spark 学习_rdd常用操作
[spark API 函数讲解 详细 ]https://www.iteblog.com/archives/1399#reduceByKey [重要API接口,全面 ] http://spark.apa ...
- spark 学习(二) RDD及共享变量
声明:本文基于spark的programming guide,并融合自己的相关理解整理而成 Spark应用程序总是包括着一个driver program(驱动程序),它运行着用户的main方 ...
- Spark学习摘记 —— RDD行动操作API归纳
本文参考 参考<Spark快速大数据分析>动物书中的第三章"RDD编程",前一篇文章已经概述了转化操作相关的API,本文再介绍行动操作API 和转化操作API不同的是, ...
- Spark学习摘记 —— RDD转化操作API归纳
本文参考 在阅读了<Spark快速大数据分析>动物书后,大概了解到了spark常用的api,不过书中并没有给予所有api具体的示例,而且现在spark的最新版本已经上升到了2.4.5,动物 ...
- spark学习(10)-RDD的介绍和常用算子
RDD(弹性分布式数据集,里面并不存储真正要计算的数据,你对RDD的操作,他会在Driver端转换成Task,下发到Executor计算分散在多台集群上的数据) RDD是一个代理,你对代理进行操作,他 ...
- Spark学习之RDD的理解
转自:http://www.infoq.com/cn/articles/spark-core-rdd/ 感谢张逸老师的无私分享 RDD,全称为Resilient Distributed Dataset ...
随机推荐
- zw版【转发·台湾nvp系列例程】HALCON EquHistoImage(Delphi)
zw版[转发·台湾nvp系列例程]HALCON EquHistoImage(Delphi) zw版[转发·台湾nvp系列例程]HALCON EquHistoImage(Delphi) (Delphi ...
- 关于科台斯k97gprs调试记录(1)
模块调试 1.gprs模块了解 用流量上网的模块,可以发短信,打电话. 2.AT指令的学习 AT+UART=波特率,流控位,数据位长度,校验控制,停止位长度 AT+NET=TCP/UDP 选择,APN ...
- 《Focus On 3D Terrain Programming》中一段代码的注释二
取自<Focus On 3D Terrain Programming>中的一段: bool CTERRAIN::MakeTerrainFault( int iSize, int iIter ...
- [转]编译Android源代码常见错误解决办法
1. 编译时出现/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.4.5/../../../libz.so when ...
- lamp环境编译(apache2.4.7 php5.4.25 mysql 5.5.23)
环境要求 gcc.gcc-c++.cmake.bison(可能)支持 1.yum install gcc gcc-c++ cmake bison 2.修改yum配置,达到搜索本地设置 移走或改名/et ...
- linux下用core和gdb查询出现"段错误"的地方【转】
转自:http://blog.chinaunix.net/uid-30091091-id-5754288.html 原文地址:linux下用core和gdb查询出现"段错误"的地方 ...
- MySQL重置root用户密码的方法
本教程适用于采用Win2003.WinXP操作系统的迅美VPS和云主机产品. 当管理员忘记MySQL密码怎么办?屡次输入密码,仍然提示错误,网站无法正常运行,数据库也无法管理,管理员束手无策. 网站程 ...
- PHP stat() 函数 返回关于文件的信息。
定义和用法 stat() 函数返回关于文件的信息. 语法 fstat(file) 参数 描述 file 必需.规定要检查的文件. 说明 获取由 file 指定的文件的统计信息.如果 file 是符号连 ...
- C#:隔离点击任务栏上的图标时的“最小化或者恢复”的效果
通常点击任务栏上的图标时,对应窗体实现“最小化或者恢复”的效果.但是在做最小化到托盘时,不希望点击任务栏图标时最小化到托盘,即希望拦截了这些效果(不允许:通过点击任务栏上的图标,实现“最小化或者恢复” ...
- Discuz2 x3深入研究内容资料
http://blog.csdn.net/yanhui_wei/article/category/1136193