• spark学习进度13——RDD的算子


    spark中的算子分为两类: [or 三类 ]

    说明:RDD一旦创建不能修改,但是可以使用算子让一个RDD转换成新的RDD,这个过程的所有操作都要基于算子进行操作。

    1、transformation 转换类 

    根据数据集创建一个新的数据集,计算后返回一个新RDD;例如:一个rdd进行map操作后生了一个新的rdd。 

    RDD中的所有转换都是延迟加载的,也就是说,它们并不会直接计算结果。相反的,它们只是记住每个RDD之间的转换动作。只有当发生一个要求返回结果给Driver的动作时,这些转换才会真正运行。这种设计的优点是Spark更加有效率地运行。

     

    2、action 行动类

    立即执行,不会生成新的RDD.如果没有行动类算子,那么程序只会被加载[读取]不会被执行。

    程序遇见action(行动)就会执行,不会转换为新的RDD,代表一个任务的结尾,不是一个应用的结尾。action算子只能将RDD的数据进行打印,收集到Driver端或者存储到其他介质中。

    所以程序执行RDD的时候如果触发action算子,那么就会触发 SparkContext 提交 Job 作业,这就是就是action算子。

     

     

    3、控制类算子 

    Spark中控制算子也是懒执行的,需要Action算子触发才能执行,主要是为了对数据进行缓存。当有Action算子出现时,他才会真正的执行

    其中延迟计算就是懒执行的意思,就像是创建了一个视图,他并不是把查询好的数据放入视图了,而是当你需要这些数据时,查看视图时,他才执行定义视图时候的SQL语句。

     

  • 相关阅读:
    Android系统的Binder机制之一——Service Manager
    Android系统的Binder机制之二——服务代理对象(1)
    电子书
    [ 具体数学 ] 1:递归式与封闭式
    线段树封装
    实验1——顺序表的合并
    配置终端VIM 文件
    编译原理:实验二、集合与线性表操作
    括号匹配检验
    Problem B: KMP算法综合应用余庆
  • 原文地址:https://www.cnblogs.com/znjy/p/15790454.html
Copyright © 2020-2023  润新知