微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

RDD的概念与创建

  1、RDD是整个Spark的计算基石。是分布式数据的抽象,为用户屏蔽了底层复杂的计算和映射环境

  •    RDD是不可变的,如果需要在一个RDD上进行转换操作,则会生成一个新的RDD
  •    RDD是分区的,RDD里面的具体数据是分布在多台机器上的Executor里面的。堆内内存和堆外内存 + 磁盘。
  •    RDD是弹性的。
      • 存储:Spark会根据用户的配置或者当前Spark的应用运行情况去自动将RDD的数据缓存到内存或者磁盘。他是一个用户不可见的封装的功能
      • 容错:当你的RDD数据被删除或者丢失的时候,可以通过血统或者检查点机制恢复数据。这个用户透明的。
      • 计算:计算是分层的,有应用->JOb->Stage->TaskSet-Task  每一层都有对应的计算的保障与重复机制。保障你的计算不会由于一些突发因素而终止。
      • 分片:你可以根据业务需求或者一些算子来重新调整RDD中的数据分布。

  2、Spark Core干了什么东西,其实就是在操作RDD

        RDD的创建--》RDD的转换--》RDD的缓存--》RDD的行动--》RDD的输出

 

 3、RDD怎么创建?

        创建RDD有三种方式:

        1、可以从一个Scala集合里面创建

    •          sc.parallelize(seq)  把seq这个数据并行化分片到节点
    •          sc.makeRDD(seq)      把seq这个数据并行化分片到节点,他的实现就是parallelize
    •          sc.makeRDD(seq[(T,seq)]  这种方式可以指定RDD的存放位置

        2、从外部存储来创建,比如sc.textFile("path")

        3、从另外一个RDD转换过来。

 

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐