RDD算子——概念及部分操作
2024-01-08 16:28:57
RDD 的算子
分类
特点
- Spark 中所有的 Transformations 是 Lazy (惰性)的,它们不会立即执行获得结果,相反,它们只会记录在数据集上要应用的操
作.只有当需要返回结果给 Driver 时,才会执行这些操作,通过 DAGScheduler 和 TaskScheduler 分发到集群中运行,这个特性
叫做 惰性求值 - 默认情况下,每一个Action运行的时候,其所关联的所有 Transformation RDD 都会重新计算,但是也可以使用 presist 方法将 RDD 持久化到磁盘或者内存中.
- 这个时候为了下次可以更快的访问,会把数据保存到集群上,
针对KV 和 数字 类型的数据,Spark提供了什么操作
-
针对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 -
针对数字型的数据、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 // ........... }
-
文章来源:https://blog.csdn.net/m0_56181660/article/details/135459019
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!