Spark Core RDD

1. 什么是 RDD

源码:https://github.com/apache/spark

A Resilient Distributed Dataset (RDD), the basic abstraction in Spark. Represents an immutable,partitioned collection of elements that can be operated on in parallel.

RDD 是一个弹性的分布式数据集,是 spark 的基本抽象,是不可变的,且由多个 partition (可理解为分区)构成(可能分布在多条机器上,可以存在内存或磁盘中),可以进行并行操作。

名词解释

  • 弹性:分布式计算时可容错,即一个节点挂了另一个会起来
  • 不可变:一旦产生就不能被改变

RDD 源码位置

2. RDD 特性

单机存储/计算 ====> 分布式(集群)/计算,分布式:考虑的是数据的切割、计算、存储

  • 数据存储:切割 HDFSBlock
  • 数据计算,切割(分布式并行计算)MapReduce/Spark
  • 存储+计算:HDFS/S3+MapReduce/Spark

RDD 特性

  • A list of partitionsRDD 由很多 partitions 构成,在 spark 中,计算时有多少 partition 就对应有多少个 task 来执行
  • A function for computing each split:对 RDD 做计算,相当于对 RDD 的每个 splitpartition 做计算
  • A list of dependencies on other RDDSRDD 之间有依赖关系、血缘关系,可溯源
  • Optionally, a Partitions for key-value RDDs (e.g. to say that the RDD is hash-partitions):若 RDD 里面存的数据是 key-value 形式,则可以传递一个自定义的 Partition 进行重新分区,如可以按 keyhash 值重新分区
  • Optionally,a list of preferred locations to compute each split on (e.g. block locations for an HDFS file):最优的位置去计算,即数据的本地性(移动数据不如移动计算,移动数据代价太大)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

风老魔

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值