zoukankan      html  css  js  c++  java
  • 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转换过来。

  • 相关阅读:
    Pytest(2)使用和调用方法
    lnmp一键搭建环境 running
    cd / 、cd~、cd .和cd..区别 running
    php算法之冒泡排序 running
    linux系统安装 running
    webpack之urlloader running
    Unix系列shell程序编写(下)
    目标文件格式分析工具: ar,nm,objdump,objcopy,readelf
    Unix系列shell程序编写(上)
    在vmware下安装的linux系统上添加eth1
  • 原文地址:https://www.cnblogs.com/alexzhang92/p/10776398.html
Copyright © 2011-2022 走看看