Spark学习笔记 --- RDD的创建
来源:互联网 发布:数据库冷备份和热备份 编辑:程序博客网 时间:2024/05/20 23:34
Spark所有的操作都围绕弹性分布式数据集(RDD)进行,这是一个有容错机制并可以被并行操作的元素集合,
具有只读、分区、容错、高效、无需物化、可以缓存、RDD依赖等特征。
目前有两种类型的基础RDD:
并行集合(Parallelized Collections):接收一个已经存在的Scala集合,然后进行各种并行计算。
Hadoop数据集(Hadoop Datasets) :在一个文件的每条记录上运行函数。只要文件系统是HDFS,
或者hadoop支持的任意存储系统即可。
这两种类型的RDD都可以通过相同的方式进行操作,从而获得子RDD等一系列拓展,形成lineage血统关系图。(1). 并行化集合
并行化集合是通过调用SparkContext的parallelize方法,在一个已经存在的Scala集合上创建的(一个Seq对象)。
集合的对象将会被拷贝,
创建出一个可以被并行操作的分布式数据集。例如,下面的解释器输出,演示了如何从一个数组创建一个并行集合。
例如:
val rdd = sc.parallelize(Array(1 to 10)) 根据能启动的executor的数量来进行切分多个slice,每一个slice启动一个Task来进行处理。
val rdd = sc.parallelize(Array(1 to 10), 5) 指定了partition的数量
(2). Hadoop数据集
Spark可以将任何Hadoop所支持的存储资源转化成RDD,如本地文件(需要网络文件系统,所有的节点都必须能访问到)、HDFS、Cassandra、HBase、Amazon S3等,Spark支持文本文件、SequenceFiles和任何Hadoop InputFormat格式。
a). 使用textFile()方法可以将本地文件或HDFS文件转换成RDD
支持整个文件目录读取,文件可以是文本或者压缩文件(如gzip等,自动执行解压缩并加载数据)。如textFile(”file:///dfs/data”)
textFile()可选第二个参数slice,默认情况下为每一个block分配一个slice。用户也可以通过slice指定更多的分片,但不能使用少于HDFS block的分片数。
b). 使用wholeTextFiles()读取目录里面的小文件,返回(用户名、内容)对
c). 使用sequenceFile[K,V]()方法可以将SequenceFile转换成RDD。SequenceFile文件是Hadoop用来存储二进制形式的key-value对而设计的一种平面文件(Flat File)。
d). 使用SparkContext.hadoopRDD方法可以将其他任何Hadoop输入类型转化成RDD使用方法。一般来说,HadoopRDD中每一个HDFS block都成为一个RDD分区。
此外,通过Transformation可以将HadoopRDD等转换成FilterRDD(依赖一个父RDD产生)和JoinedRDD(依赖所有父RDD)等。
- Spark学习笔记 --- RDD的创建
- Spark学习笔记二 RDD
- spark RDD解密学习笔记
- Spark学习笔记 --- RDD详解
- Spark学习笔记 --- 什么是RDD
- Spark RDD 的创建 & Accumulators
- Spark学习笔记 --- spark RDD加载文件
- spark源码阅读笔记RDD(七) RDD的创建、读取和保存
- spark学习笔记之一:RDD的五大特性
- 大数据学习笔记(六)-Spark的RDD
- RDD Dependency详解---Spark学习笔记9
- Spark学习笔记之<RDD原理>
- Spark学习笔记三(RDD常用操作)
- Spark学习笔记四(RDD Persistency)
- Spark学习笔记(一)--RDD编程
- Spark学习笔记2:RDD编程
- Spark学习笔记2:RDD编程
- Spark学习笔记1-RDD编程
- MySql实现分页查询的SQL,mysql实现分页查询的sql语句
- PTC联手阿里云共同提高中国工业4.0认可度
- android实现弹窗和自定义弹窗
- Gson的使用讲解
- springMVC执行过程
- Spark学习笔记 --- RDD的创建
- WINDOWS特有的消息常量标识符
- 阿里云参与两大国家工程实验室获批,人工智能继续深入工业制造
- 【JQuery学习总结1 】 一些实用的JQuery代码片段收集(筛选,搜索,样式,清除默认值,多选等)
- OpenGL核心之SSAO技术讲解(一)
- HTML5基础加强css样式篇(DOM的属性操作(对class属性值的操作 setAttribute,removeAttribute,classlist:remove,add,toggle))(七)
- 没有功能需求设计文档?对不起,拒绝开发!
- 流相关
- UE_一些小应用