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
    ActioncountByKey
    take
    collect
  2. 针对数字型的数据、spark提供了什么操作:

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

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

      @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
        // ...........
      }
      
  • 12
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值