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
        // ...........
      }
相关推荐
莽撞的大地瓜5 分钟前
舆情分析智能体:蜜度新浪舆情通以多Agent协同驱动全流程智能升级
大数据·数据仓库·数据分析
Promise微笑15 分钟前
Geo专家于磊:Json-LD优化实战SOP与双核四驱体系
大数据·人工智能·重构·json
行业研究员16 分钟前
2026 Agent Memory主流方案能力解析与落地选型
大数据·数据库·agent记忆
跨境卫士苏苏20 分钟前
欧盟固定收费临近之后跨境卖家如何判断哪些轻小件先退出
大数据·人工智能·跨境电商·亚马逊·跨境
优思学苑31 分钟前
优思学院|波音 787 电池故障背后的六西格玛启示
大数据·人工智能
数据库小学妹42 分钟前
CDC实时数据同步:让数据库变更秒级流向大数据平台!
大数据·数据库·mysql·kafka·dba
小仙女的小稀罕1 小时前
适合企业行政开工作会议的,一加会议转任务工具
大数据·人工智能
eastyuxiao1 小时前
主流物联网协议 超详细讲解
大数据·人工智能·物联网·智慧城市·能源·数字孪生
事变天下1 小时前
跨界融合|当家居遇见音乐,华夏家博会携手梦百合推出“0压之夜”
大数据·科技
IT研究所1 小时前
从系统选型到ITR智能服务流落地的关键一步
大数据·运维·服务器·数据库·人工智能·科技·自动化