RDD的简介
来源:互联网 发布:淘宝求购区在哪里 编辑:程序博客网 时间:2024/06/03 21:10
在spark中,有一个不可变的分布式数据结构,即弹性分布式数据集(RDD),它是逻辑集中的实体,在集群中的多个节点上被分为多个分区。通过对多个节点上不同RDD分区的控制,能够减少机器之间的数据重排(data shuffling)。
Spark提供了一个”partitionBy”运算符,能够通过集群中多个节点之间对原始RDD进行数据再分配来创建一个新的RDD。
RDD是spark的核心数据结构,通过RDD的依赖关系形成spark的调度顺序。通过对RDD的操作形成整个spark程序。
RDD 可以包含 Python、Java、Scala 中任意类型的对象,甚至可以包含用户自定义的对象。
(1)RDD的三种生成方式
1)从Hadoop文件系统(与Hadoop兼容的其他持久化存储系统,如Hive、Cassandra、Hbase)输入(如HDFS)创建。
例如:
>>> lines = sc.textFile("test.txt")
2)在驱动器程序里分发驱动器程序中的对象集合(比如list和set)。
>>> lines = sc.parallelize(List(1,2,3))
3)从父RDD转换得到新的RDD
>>>testlines = lines.filter(line=>line.contains("spark"))
RDD其实并没有存储数据,只是数据的一个映像,RDD的内部属性有以下部分:
1)分区列表。
2)计算每个分区的函数
3)对父RDD的依赖列表
4)对key-Value对数据类型RDD的分区器,控制分区策略和分区数
5)每个数据分区的地址列表(如HDFS上的数据块的地址)
RDD支持粗粒度和细粒度的读操作。RDD上的很多函数操作(count和collect等)都是批量读操作,即扫描整个数据集,可以将任务分配到距离数据最近的节点上。同时,RDD也支持细粒度操作,即在哈希或范围分区的RDD上执行关键字查找。
0 0
- RDD的简介
- Spark RDD的缓存 rdd.cache() 和 rdd.persist()
- Spark RDD的缓存 rdd.cache() 和 rdd.persist()
- 创建RDD和RDD的持久化
- Spark RDD与共享变量简介
- RDD的依赖关系
- spark RDD的理解
- 理解Spark的RDD
- RDD的认识
- spark RDD的原理
- RDD的原理
- RDD的创建
- Spark RDD的转换
- Spark RDD的动作
- pyspark的RDD运算
- RDD.treeAggregate 的用法
- RDD的属性
- RDD.glom的用法
- ewrtert
- C++ Primer(第五版)练习3.40
- 进阶篇:同步阻塞队列之LinkedBlockingQueue(十一)
- 关于对象的数据属性
- Linux学习之shell脚本——变量
- RDD的简介
- day22_baseEnhance
- Linux中的工作队列
- Java 8:不要再用循环了
- 355. Design Twitter(unsolved)
- poj3684 Physics Experiment(加解析)
- JAVA学习笔记之选择排序与冒泡排序
- activiti学习笔记6--Exposing configuration beans in expressions and scripts--20170412
- 微信小程序开发:一个音乐播放器