RDD基础

                                                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存储的是真正要计算的数据、执行方法后立即返回结果。

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值