为了账号安全,请及时绑定邮箱和手机立即绑定

RDD基础

标签:
Spark

   RDD基础

一、RDD基本特征

1.RDD是一个基本的抽象,操作RDD就像操作本地集合一样,降低了编程的复杂度。

    A Resilient Distributed Dataset (RDD), the basic abstraction in Spark。

弹性的 可恢复的 分布式的 数据集,是spark中的基本抽象。

2.RDD的特征

  • A list of partition

  • A function for computing each split

  • A list ofo RDD on other RDDs

  • Optionally,a partitioner for key-value RDDs

  • Optionally,a list of perferred locations to compute each split on

  1.     一系列分区,分区有编号,有顺序;

  2.     每一个输入切片会有一个函数作用在上面;

  3.     RDD与RDD之间存在依赖关系;

  4.     (可选)RDD中如果存储的是KV类型,shuffle时会有一个分区器,默认是HashPartitioner ;

  5.     (可选)如果是读取HDFS中的数据,那么会有一个最优位置。

3.RDD的类别

    RDD的算子分为两类,一类是Transformation(lazy),一类是Action(触发任务执行)

RDD不存在真正要计算的数据,而是记录了RDD的转换关系(调用了什么方法,传入了什么函数)

4.创建RDD的方式

    (1)通过外部的存储系统创建RDD

    (2)将Driver的Scala集合通过并行化的方式编程RDD(试验)

    (3)调用一个已经存在的RDD的Transformation,会生成一个新的RDD

     4.1RDD的Transformation的特点

        (1)lazy

        (2)生成新的RDD

5.RDD分区的数据取决于哪些因素?

    (1)如果是将Driver端的Scala集合并行化创建RDD,并且没有指定RDD的分区,RDD的分区就是为该app分配的核数

    (2)如果是从HDFS中读取数据创建RDD,并且设置了最新分区数量是1,

        那么RDD的分区数据既是输入切片的数据,如果不设置最小分区的数量,

        既spark调用textFile时会默认传入2,那么RDD的分区数量会大于等于输入切片的数量

6.RDD与普通的集合有哪些区别?

    RDD里面记录的是描述信息(从哪里读数据,以后对数据如何计算)、

    RDD的方法分为两类:Transformation(lazy)、Action(生成Task,

    并发送到Executor中执行)。

    Scala存储的是真正要计算的数据、执行方法后立即返回结果。

【注】本文参考自小牛课堂

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消