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
        // ...........
      }
相关推荐
梦里不知身是客1127 分钟前
flink中checkpoint的重启策略
大数据·服务器·flink
中科天工41 分钟前
从“人海战术”到“无人值守”:一套智能工厂解决方案,如何用最小空间释放最大产能?
大数据·人工智能·智能
zhaodiandiandian43 分钟前
生成式AI重塑内容创作:人机协同开启行业新生态
大数据·人工智能
不平衡的叉叉树1 小时前
Es索引文档全量更新与迁移
大数据·elasticsearch·搜索引擎
科技动态1 小时前
BOE(京东方)“焕新2026”年终媒体智享会落地成都 三大显示技术品牌引领行业发展风潮
大数据·人工智能·媒体
沃达德软件2 小时前
警务大数据实战模型解析
大数据·人工智能
zhou_gai2 小时前
供应链计划系统架构实战(五):数据模型设计-全球网络模型与数据分布
大数据·系统架构·制造
路边草随风3 小时前
java操作cosn使用
java·大数据·hadoop
老蒋新思维3 小时前
创客匠人峰会洞察:私域 AI 化重塑知识变现 —— 创始人 IP 的私域增长新引擎
大数据·网络·人工智能·网络协议·tcp/ip·创始人ip·创客匠人
刘一说4 小时前
时空大数据与AI融合:重塑物理世界的智能中枢
大数据·人工智能·gis