Spark - RDD(弹性分布式数据集)
org.apache.spark.rdd
RDD
abstract class RDD[T] extends Serializable with Logging
A Resilient Distributed Dataset (RDD), the basic abstraction in Spark. Represents an immutable, partitioned collection of elements that can be operated on in parallel. This class contains the basic operations available on all RDDs, such as map, filter, and persist. In addition, org.apache.spark.rdd.PairRDDFunctions contains operations available only on RDDs of key-value pairs, such as groupByKey and join; org.apache.spark.rdd.DoubleRDDFunctions contains operations available only on RDDs of Doubles; and org.apache.spark.rdd.SequenceFileRDDFunctions contains operations available on RDDs that can be saved as SequenceFiles. All operations are automatically available on any RDD of the right type (e.g. RDD[(Int, Int)] through implicit.
弹性分布式数据集(RDD)是Spark中的基本抽象。表示了一个不可变的,可分区的元素集合。其中的元素能够被并行的操作。这个类包含了所有在RDD上可能的操作,比如map,filter和persist. 此外,org.apache.spark.rdd.PairRDDFunctions还包括了对于键值对元素组成的RDD的可用操作。比如groupByKey和join;org.apache.spark.rdd.DoubleRDDFunctions 包含了对由doubles类型元素组成的RDD可用的操作。org.apache.spark.rdd.SequenceFileRDDFunctions 包括了对于能够保存为Hadoop SequenceFile的RDD上的可用操作。 所有的操作都是通过隐式调用对于右侧任何RDD自动可用的。例如 RDD[(Int, Int)]
Internally, each RDD is characterized by five main properties:
在内部,每个RDD主要被特征化为五个属性:
A list of partitions
一个分区列表
A function for computing each split
一个用来计算每个分割的函数
A list of dependencies on other RDDs
一个关于其他RDD的依赖性列表
Optionally, a Partitioner for key-value RDDs (e.g. to say that the RDD is hash-partitioned)
可选的,一个关于键-值RDD的分区,或者称这个RDD为哈希分区(散列分区)
Optionally, a list of preferred locations to compute each split on (e.g. block locations for an HDFS file)
可选的,一个被建议的位置列表用来计算每个分块的位于的结点位置,例如在HDFS文件系统上的块的位置。
All of the scheduling and execution in Spark is done based on these methods, allowing each RDD to implement its own way of computing itself. Indeed, users can implement custom RDDs (e.g. for reading data from a new storage system) by overriding these functions. Please refer to the Spark paper for more details on RDD internals.
在Spark中所有的调度和执行,都是基于这些方法。就是允许每一个RDD各自实现计算自身的方法。事实上,用户也可以通过重写这些函数来实现自定义RDD,例如从一个新的储存系统上读取数据。。请参阅Spark的文档来了解更多的RDD内部细节。
Linear Supertypes(父类)
Logging, Serializable, Serializable, AnyRef, Any
Known Subclasses(已知的子类<派生类>)
CoGroupedRDD, EdgeRDD, EdgeRDDImpl, HadoopRDD, JdbcRDD, NewHadoopRDD, PartitionPruningRDD, ShuffledRDD, UnionRDD, VertexRDD, VertexRDDImpl
总结
RDD是Spark的核心,也是整个Spark的架构基础。它的特性可以总结如下:
- 它是不变的数据结构存储
- 它是支持跨集群的分布式数据结构
- 可以根据数据记录的key对结构进行分区
- 提供了粗粒度的操作,且这些操作都支持分区
- 它将数据存储在内存中,从而提供了低延迟性
(未完待续)
转载请注明:原文地址:http://www.cnblogs.com/suanec/p/4772707.html
Spark - RDD(弹性分布式数据集)的更多相关文章
- RDD(弹性分布式数据集)及常用算子
RDD(弹性分布式数据集)及常用算子 RDD(Resilient Distributed Dataset)叫做弹性分布式数据集,是 Spark 中最基本的数据 处理模型.代码中是一个抽象类,它代表一个 ...
- RDD弹性分布式数据集的基本操作
RDD的中文解释是弹性分布式数据集.构造的数据集的时候用的是List(链表)或者Array数组类型/* 使用makeRDD创建RDD */ /* List */ val rdd01 = sc.make ...
- 2. RDD(弹性分布式数据集Resilient Distributed dataset)
*以下内容由<Spark快速大数据分析>整理所得. 读书笔记的第二部分是讲RDD.RDD 其实就是分布式的元素集合.在 Spark 中,对数据的所有操作不外乎创建RDD.转化已有RDD以及 ...
- Spark弹性分布式数据集RDD
RDD(Resilient Distributed Dataset)是Spark的最基本抽象,是对分布式内存的抽象使用,实现了以操作本地集合的方式来操作分布式数据集的抽象实现.RDD是Spark最核心 ...
- spark系列-2、Spark 核心数据结构:弹性分布式数据集 RDD
一.RDD(弹性分布式数据集) RDD 是 Spark 最核心的数据结构,RDD(Resilient Distributed Dataset)全称为弹性分布式数据集,是 Spark 对数据的核心抽象, ...
- 弹性分布式数据集RDD概述
[Spark]弹性分布式数据集RDD概述 弹性分布数据集RDD RDD(Resilient Distributed Dataset)是Spark的最基本抽象,是对分布式内存的抽象使用,实现了以操作 ...
- 弹性分布式数据集(RDD)
spark围绕弹性分布式数据集(RDD)的概念展开的,RDD是一个可以并行操作的容错集合. 创建RDD的方法: 1.并行化集合(并行化驱动程序中现有的集合) 调用SparkContext的parall ...
- Spark核心类:弹性分布式数据集RDD及其转换和操作pyspark.RDD
http://blog.csdn.net/pipisorry/article/details/53257188 弹性分布式数据集RDD(Resilient Distributed Dataset) 术 ...
- Spark的核心RDD(Resilient Distributed Datasets弹性分布式数据集)
Spark的核心RDD (Resilient Distributed Datasets弹性分布式数据集) 原文链接:http://www.cnblogs.com/yjd_hycf_space/p/7 ...
随机推荐
- sharepoint更新多行文本webparth
前台 <script> function Copy() { var value = document.getElementById("<%=BodyBox.ClientID ...
- js ==与===区别(两个等号与三个等号)
1.对于string,number等基础类型,==和===是有区别的 1)不同类型间比较,==之比较“转化成同一类型后的值”看“值”是否相等,===如果类型不同,其结果就是不等 2)同类型比较,直接进 ...
- Java for LeetCode 078 Subsets
Given a set of distinct integers, nums, return all possible subsets. Note: Elements in a subset must ...
- Java for LeetCode 055 Jump Game
Given an array of non-negative integers, you are initially positioned at the first index of the arra ...
- codeforces B. Sereja and Stairs 解题报告
题目链接:http://codeforces.com/problemset/problem/381/B 题目意思:给定一个m个数的序列,需要从中组合出符合楼梯定义 a1 < a2 < .. ...
- codeforces B. Semifinals 解题报告
题目链接:http://codeforces.com/problemset/problem/378/B 题目意思:有n个参赛者,他们都需要参加两场半决赛.第一场半决赛的成绩依次是a1, a2, ... ...
- java读取本地properties文件
package cn.edu.hbcf.pojo; import java.io.FileNotFoundException; import java.io.IOException; import j ...
- 禅道bug安装报错
[root@lnmp src]# grep "session.save" /etc/php.ini ; http://php.net/session.save-handler se ...
- Java Hour6
有句名言,叫做10000小时成为某一个领域的专家.姑且不辩论这句话是否正确,让我们到达10000小时的时候再回头来看吧. 本文作者Java 现经验约为5 Hour,请各位不吝赐教. Hour6 Jav ...
- wp8 --退出程序
重写OnBackKeyPress事件,设置 e.cancel=true:然后加弹窗代码,为确定按钮订阅事件委托,委托方法里加Application.Current.Terminate();退出方法即可