Python Spark RDD(1) 学习笔记十

Spark的核心是RDD(Resilient Distributed Dataset),即弹性分布式数据集,属于一种分布式的内存系统数据集应用。Spark的主要优势来自RDD本身的特性,RDD能与其他系统兼容,可以导入外部内存系统的数据集,例如HDFS、HBase或其他Hadoop数据源。

10.1 RDD的特性

10.1.1 RDD的3种基本运算。

RDD运算内型 说明
“转换”运算Transformation ·RDD执行“转换”运算的结果,会产生另外一个RDD·RDD具有lazy特性,所以“转换”运算并不会立刻实际执行,等到执行“动作”运算才会实现执行
“动作”运算Action ·RDD执行“动作”运算后不会产生另外一个RDD,而是会产生数值、数组或写入文件系统 ·RDD执行“动作”运算时会立刻实际执行,并连同之前的“转换”运算一起执行
“持久化”Persistence 对于那些会重复使用的RDD,可以将RDD“持久化”在内存中作为后续使用,以提高执行性能

RDD通过“转换”运算可以得出新的RDD,但Spark会延迟这个“转换”动作的发生时间点。并不会马上执行,而是等到执行Action之后才会基于所有RDD关系来来执行转换。
RDD转换示意图
在这里插入图片描述

·输入数据,执行“转换1”运算产生RDD1,此时不会实际执行,只会记录操作命令。
·RDD1执行“转换2”运算产生RDD2,此时不会实际执行,只会记录操作命令。
·RDD2执行“转换3”运算产生RDD3,此时不会实际执行,只会记录操作命令。
·RDD3执行“转换4”运算产生RDD4,此时不会实际执行,只会记录操作命令。
·RDD4执行“动作1”运算,此时会实际执行:“转换1”+“转换2”+“转换3”+“转换4”+“动作1”,产生数据1。
··RDD4执行“动作2”运算,此时会实际执行:“转换1”+“转换2”+“转换3”+“转换4”+“动作2”,产生数据2。(如果之前已经执行了“动作1”运算,那么“转换1”+“转换2”已经实际执行完成,在此只会实际执行“转换4”+“动作2”,以节省运行时间)。

10.1.2 Lineage机制具备容错的特性

RDD本身具有Lineage机制。它会记录下每个RDD与其父代RDD之间的关系,还会记录通过什么操作才由父代RDD得到该消息的信息。
RD

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值