spark RDD介绍

一、RDD介绍
RDD(Resilient Distrobuted Dataset)是spark最基本的数据结构,是分布再集群各个不同节点的不可变的数据集合。
RDD 是spark处理过程中数据的逻辑表示
RDD在spark应用的不同阶段的数据结构表示
在这里插入图片描述
Resilient
弹性的,可以通过RDD Lineage图(DAG)进行重新计算,具有很好的容错性
在这里插入图片描述
DAG在spark 程序中如何工作:
(1)编译器编译好程序代码
(2)Spark创建由各个RDD组成的操作算子图,形成DAG
(3)当有Action算子触发Spark的计算后,Spark将形成DAG图,提交到Spark的DAG Scheduler上。
(4)DAG Scheduler会将DAG的图划分不同的stage
(5)不同Satge的Task会被提交到Task Scheduler上面进行Task的计算

Distributed
数据分布在不同的节点之上
DataSet
代表了spark应用处理的数据
在这里插入图片描述
容错性(当某些task失败后,数据和task可以自动恢复)
RDD将处理的数据进行分区划分
每一个Task都将处理每个分区的数据
RDD可以根据DAG中的依赖关系生成
当某个RDD中的每个分区的数据丢失活着任务失败,该RDD的该分区的数据可以依据DAG的依赖关系重新生成
当集群上的某个节点出现故障后,该集群上的RDD和Task都可以重新根据DAG进行恢复
二、RDD操作算子
操作算子类型:Transformations和Actions
Transformation是RDD的一个操作,可以从现有的RDD中生成新的RDD
Input(RDD)->output(RDD)
Action是RDD的触发操作,当一个Spark程序中出现Action的算子的时候,Spark程序才会被触发。Action的结果一般是形成一个非RDD的结果。
(1)Transformation
是lazy操作算子,不会执行,只有Action算子存在的时候才会执行
1)Narrow Transoformation
所需要计算的新的partition的数据来源都来自父RDD的单一的partition,无需shuffling
在这里插入图片描述
2)Wide Transformation
所需要计算新的partition的数据来源都来自父RDD的多个partition,一般需要shuffling
在这里插入图片描述
(2)Transformation Example
map():对每一个输入值进行指定的操作,然后为每一条输入值返回一个结果
flatmap():对每个输入值进行指定的操作,每一条输入值都有一个结果,然后扁平化,最后返回一个对象
在这里插入图片描述
filter():数据过滤
union():数据叠加,淡出加数据(与join不同)
intersection():找出有交集的RDD
ditinct():去除重合的数据 (val example=rdd1.distinct())
groupkey()、sortByKey()都是根据key排序
reduceByKey(+)返回根据key进行加法。排序进行统计有可能触发action(触发count).
join():数据横向操作
coalesce() & repartition():改变RDD数据分区,前者没有shuffling,后者有repartition()有shuffling()
(3)Action Example
count():总数
collect():把数据都数据到driver
take():取数据
top():取前面是数据
coutByVaule():对每一数进行计数
reduce():求和
aggregate():聚合
foreach():执行相同的操作
saveAsTextFile():把RDD存为txt
三、RDD Lineage及要点
在这里插入图片描述
RDD Lineage是一个可以表示Spark程序中RDD之间依赖关系的图
RDD是可以利用Transformation操作从其他一个或者多个RDD创建形成的
Spark利用DAG来管理程序的执行计数
DAG表示了Spark程序中RDD的各种操作计划
(1)RDD持久化存储和缓存(cache()&persist())
对于interactive(交互式)的操作比较有用(机器学习)
cache()是MEMORY_ONLY
presist()有以下几个选择:
MEMORY_ONLY
MEMORY_AND_DISK
MEMORY_ONLY_SER(序列化java对象,对象保存为字节数组流)
MEMORY_AND_DISK_SER(序列化java对象,对象保存为字节数组流)
DISK_ONLY

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值