Spark核心--RDD

RDD

RDD(Resilient Distributed Datasets)即弹性分布式数据集,它是Spark的核心概念,我们从以下几点来理解它:
1. RDD由多个Partition构成,是分布在集群中的只读对象的集合。
2. RDD存储在磁盘或内存中,Spark提供了多种RDD缓存级别。
3. RDD可通过并行”转换”操作进行构造。
4. RDD失效后会自动重构。

如下图所示,RDD有三个分片,分片1存储在节点1的内存里,分片2存储在节点2的内存里,分片3存储在节点2的磁盘上。
RDD存储

RDD基本操作–Transformation & Action

Transformation操作是指通过程序集合或者Hadoop数据集构造一个新的RDD,即通过已有的RDD产生新的RDD。Action操作是指通过RDD计算而得到一个值或者一组值。

RDD基本操作

Transformation接口定义:RDD[X] -> RDD[Y]
Action接口定义:RDD[X] -> Z (Z不是一个RDD, 可能是基本类型或数组等)

更多的接口定义如下:
Spark基本操作的接口

惰性执行
这里要强调一点,Transformation只会记录RDD转化关系,并不会触发计算;Action才是触发程序执行的算子。
我们结合下图再解释下,RDD1通过Map(+1)的Transformation操作,新生成了RDD2,此时还没有触发计算。当RDD2执行saveAsTextFile的Action操作时,程序才触发执行,并将结果以文本文件的形式保存到了存储介质上。
惰性执行

RDD cache/persist

Spark提供了RDD缓存机制,它允许将RDD缓存到内存中或磁盘上,以便重用。Spark提供了多种缓存级别, 以便于用户根据实际需求进行设置。
RDD cache
RDD cache

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值