• Spark转换、执行、shuffle等常用算子归类


    一、转换算子(Transformations)

    Transformations 类算子,只是定义并描述数据形态的转换过程,并不立即执行计算

    适用范围用途算子集合
    任意RDD单个RDD转换

    map、mapPartitions、mapPartitionsWithIndex

    filter

    flatMap

    任意RDD与其它RDD组合

    union、intersection、join

    cogroup、cartesian

    任意RDD数据采集sample、distinct
    任意RDD数据分片重分布

    coalesce

    repartition、repartitionAndSortWithinPartitions
     

    paired RDD单个RDD的数据聚合

    groupByKey、sortByKey

    reduceByKey、aggregateByKey

    二、执行算子(Actions)

    上边说了,Transformations类算子并不立即执行计算,当且仅当开发者调用 Actions 算子时,之前调用的转换算子才会付诸执行

    适用范围用途算子集合
    任意RDD收集数据到driver

    collect、first、take

    takeSample、takeOrdered

    count
    任意RDD持久化数据

    saveAsTextFile、saveAsSequenceFile、saveAsObjectFile

    takeSample、takeOrdered

    任意RDD函数式操作foreach

    三、shuffle算子

    以下算子的执行,通常会发生数据跨节点的移动,从而触发shuffle操作

    用途描述算子集合
    repartition类的操作repartition类重分区操作,对之前所有的分区的数据进行随机,均匀的打乱,然后把数据放入下游新的指定数量的分区内

    repartition、repartitionAndSortWithinPartitions、coalesce

    byKey类的操作byKey类的操作需要对某个key进行聚合操作,那么肯定要保证集群中所有节点上的,相同的key,一般会移动到同一个节点上进行处理

    reduceByKey、groupByKey、aggregateByKey、sortByKey

    countByKey、foldByKey、combineByKey

    join类的操作join类的操作,通常是两个rdd进行需要join,就必须将相同join的key的数据,移动到同一个节点上,然后进行相同key的两个rdd数据的笛卡尔乘积join、cogroup
  • 相关阅读:
    FTP命令不同系统之间传输文件
    python re 匹配所有字段名称相同的值
    fastapi 基本介绍+使用
    【AI相关】模型相关技术名词
    经纬度转化平面坐标
    Linux--Redis 群集
    文献 | 关于心理活动符号学,你知道多少?
    怎么修改wp-comments-post 防垃圾(spam)评论?
    linux命令
    不适用于云的应用程序有哪些?
  • 原文地址:https://blog.csdn.net/lzxlfly/article/details/127761454