什么是RDD ?

突然看到以前的总结,好怀念,这里就贴出来打击看一下吧

Spark知识总结


RDD

什么是RDD ?

(Resilient Distributed Datasets)弹性分布式数据集

弹性

  • RDD可以在存储在内存和磁盘之间,并且自动或者手动切换
  • RDD具有良好的容错性(即RDD可以通过血统转化为其他RDD)
  • Task如果失败,会进行特定次数的重试(default 4)
  • Stage如果失败会就行特定次数的重试
  • RDD可以存储任意类型的数据
  • RDD的分区数目可以自行设定

分布式

  • RDD可以存储在多台主机的内存或者磁盘之上

数据集

  • RDD是数据集合的抽象,从外部看RDD就是封装之后的可容错的数据集

RDD的特性

  1. A list of partitioner 也就是说RDD有很多个分区
  2. A function for computing each split 每一个切片(分区)使用同一个函数计算
  3. A list of depedencies on other RDDs 一组对其他RDD的依赖 即RDD具有血统
  4. Optionally, a Partitioner for key-value RDDs 对于Key-Value类型的RDD存在一个partitioner(划分器)目前只有HashPartitioner 和RangeRartitioner
  5. Optionally, a list of preferred locations to compute each split on 对于每一个切片(分区)都会偏向于选择就近的进行计算

RDD的来源

  1. 使用程序中的集合来创建RDD
  2. 使用本地文件系统创建RDD
  3. 从HDFS创建RDD
  4. 从数据库(DB ==包括nosql数据库==)创建RDD
  5. 从数据流创建RDD
  6. 从s3创建RDD

RDD的转化算子

RDD既然是数据集,就可以对数据进行存储,当然了它也有一些算子可以对存储的数据进行计算。他的算子分为两类

  • Transformation 算子
  • Action 算子

两者的区别是Transformation算子是lazy的,调用了这个算子之后它不会马上的执行,而是在Action算子调用之后才开始执行

Transformation算子

  • map(func)
  • filter(func)
  • flatMap(func)
  • sample(withReplacement,frca,seed)
  • union(otherDataSet)
  • groupByKey([numTask])
  • reduceByKey(func,[numTasks])
  • join([numtasks])
  • groupWith(othorDataSet,[numTasks])
  • cartesian(otherDataSet)

Action算子

  • reduce(func)
  • collect()
  • take(n)
  • fist()
  • saveAsTextFile(path)
  • saveAsSequenceFile(path)
  • foreach(func)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

偷偷放晴的天空

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

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

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

打赏作者

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

抵扣说明:

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

余额充值