RDD算子——概念及部分操作

RDD 的算子

分类

特点

  • Spark 中所有的 Transformations 是 Lazy (惰性)的,它们不会立即执行获得结果,相反,它们只会记录在数据集上要应用的操
    作.只有当需要返回结果给 Driver 时,才会执行这些操作,通过 DAGScheduler 和 TaskScheduler 分发到集群中运行,这个特性
    叫做 惰性求值
  • 默认情况下,每一个Action运行的时候,其所关联的所有 Transformation RDD 都会重新计算,但是也可以使用 presist 方法将 RDD 持久化到磁盘或者内存中.
  • 这个时候为了下次可以更快的访问,会把数据保存到集群上,

针对KV 和 数字 类型的数据,Spark提供了什么操作

  1. 针对KV类型的数据,Spark提供了什么操作:

    键值型数据本质上就是一个二元元组, 键值对类型的 RDD 表示为 RDD[(K, V)]

    RDD 对键值对的额外支持是通过隐式支持来完成的, 一个 RDD[(K, V)], 可以被隐式转换为一个 PairRDDFunctions 对象, 从而调用其中的方法.

    既然对键值对的支持是通过 PairRDDFunctions提供的, 那么从 PairRDDFunctions中就可以看到这些支持有什么

    类别 算子
    聚合操作 reduceByKey
    foldByKey
    combineByKey
    分组操作 cogroup (不常见)
    groupByKey
    连接操作 join
    leftOuterJoin
    rightOuterJoin
    排序操作 sortBy
    sortByKey
    Action countByKey
    take
    collect
  2. 针对数字型的数据、spark提供了什么操作:

    对于数字型数据的额外支持基本上都是 Action 操作, 而不是转换操作

    算子 含义
    count 个数
    mean 均值
    sum 求和
    max 最大值
    min 最小值
    variance 方差
    sampleVariance 从采样中计算方差
    stdev 标准差
    sampleStdev 采样的标准差
    • code

      scala 复制代码
      @Test
      def numberic(): Unit={
        val rdd = sc.parallelize(Seq(1, 2, 3, 4, 10, 20, 30, 50, 100))
        // 最大值
        println(rdd.max()) // 100
        // 最小值
        println(rdd.min()) // 1
        // 平均数
        println(rdd.mean()) // 24.444444444444443
        // 和
        println(rdd.sum()) // 220.0
        // ...........
      }
相关推荐
boppu8 小时前
布草特殊污渍去渍剂的种类及作用
大数据·人工智能
Achou.Wang9 小时前
深入理解go语言-第5章 并发编程——Go的灵魂
大数据·算法·golang
事变天下11 小时前
迈瑞的足球之夏:从一次救援到全球守护
大数据·科技
中微极客12 小时前
多智能体编排实战:CrewAI vs AutoGen(2026版)
大数据·网络·人工智能
用户36105886261213 小时前
Spark 核心之 Standalone-Cluster 模式:原理、流程与源码级深度拆解
spark
西邮彭于晏13 小时前
图文详解:Git分支创建、合并与冲突解决|新手零门槛完整教程
大数据·git·elasticsearch
IanSkunk14 小时前
企业AI办公落地技术拆解:从WorkBuddy任务引擎到JOTO实施路径
大数据·人工智能
上海心泾国际物流有限公司14 小时前
2024-2026年进出口报关政策五大变化
大数据·经验分享·交通物流
Xvisio诠视科技15 小时前
从“感知”到“理解”:空间计算如何成为具身智能世界模型的“数据底座”?
大数据·空间计算
jerryinwuhan15 小时前
数据预处理技术 2026-2027-1 开篇-课程介绍
大数据·python