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转换过来。

  • 相关阅读:
    Django 信号
    Python标准库12 数学与随机数 (math包,random包)
    利用python进行数据分析之数据聚合和分组运算
    利用python进行数据分析之绘图和可视化
    Django Aggregation聚合
    配置使用TargetFrameworks输出多版本类库
    WebApi 异常处理解决方案
    WebApi(6) 后台C#调用WebApi
    Target frameworks
    C#中lock死锁实例教程
  • 原文地址:https://www.cnblogs.com/alexzhang92/p/10776398.html
Copyright © 2011-2022 走看看