Spark的核心概念——RDD

Spark的核心概念——RDD
RDD(resilient distributed dataset )Spark基本计算单元,是Spark数据集 最核心的东西。表示已被分区、被序列化、不可变的、有容错机制的、能被并行操作的数据集合
弹性分布式
Resilient 当一个RDD分区(partition)丢失之后,Spark会自动通过lineage,从其原始的RDD重新计算。
Distributed 通过分区(partitioned)分布在集群多台机器上并行计算
一、RDD的创建方式: 
1、集合转换 
2、从文件系统(本地文件、HDFS、HBase)输入 
3、从父RDD转换(为什么需要父RDD呢?容错,下面会提及) 
二、RDD的计算类型: 
1、Transformation:延迟执行,一个RDD通过该操作产生的新的RDD时不会立即执行,只有等到Action操作才会真正执行。 
2、Action:提交Spark作业,当Action时,Transformation类型的操作才会真正执行计算操作,然后产生最终结果输出。
三、RDD的特点:
1、它是在集群节点上的不可变的、已分区的集合对象。
2、失败自动创建。
3、一个变换将一个RDD变换成另外一个RDD,这些RDD之间通过Lineage产生依赖关系。
4、分区只是一个逻辑概念,变换前和变换后的分区可能是同一块内存存储。
5、可以控制存储级别(内存、硬盘等)来进行重用。
6、在物理上,RDD对象实质上是一个元数据结构,存储着Block, Node等的映射关系,以及其他的元数据信息。
7、一个RDD就是一组分区,每个分区就是一个block。 block可以存储在内存中,如果内存不够时可以存储在磁盘上。
8、支持使RDD的元素根据那个key来分区(partitioning)。spark支持重分区,数据通过spark默认或者用户自定义的分区器进行分区,决定数据块分布在哪些节点上。
(如果是从HDFS等外部存储结构中读取数据,数据则按照HDFS中的数据分布策略进行数据分区,HDFS中的一个block对应spark的一个分区 )
9、可序列化,静态类型。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值