Spark Action操作
来源:互联网 发布:赚钱最快的方法 知乎 编辑:程序博客网 时间:2024/06/05 23:54
集合标量行动操作:
- first():T 表示返回RDD中的第一个元素,不排序
- count():Long 表示返回RDD中的元素个数
- reduce(f:(T,T)=>T):T 根据映射函数f,对RDD中的元素进行二元计算
- collect():Array[T] 表示将RDD转换成数组。
- take(num:Int):Array[T] 表示获取RDD中从0到num-1下标的元素,不排序。
- top(num:Int):Array[T] 表示从RDD中,按照默认(降序)或者指定的排序规则,返回前num个元素。排序。
- takeOrdered(num:Int):Array[T]和top类似,只不过以和top相反的顺序返回元素。
- aggregate[U: ClassTag](zeroValue: U)(seqOp: (U, T) => U, combOp: (U, U) => U): U用户聚合RDD中的元素,先使用seqOp将RDD中每个分区中的T类型元素聚合成U类型,在使用comOp将之前每个分区聚合后的U类型聚合成U类型,特别注意seqOP和comOP都会使用zeroValue的值。
- fold(zeroValue: T)(op: (T, T) => T): T fold是aggregate的简化,将aggregate中的seqOp和combOp合并成一个函数op。
val rdd5 = sc.parallelize(1 to 10, 2) rdd5.mapPartitionsWithIndex( (partIdx, iter) => { var part_map = scala.collection.mutable.Map[String, List[Int]]() while (iter.hasNext) { var part_name = "part_" + partIdx var elem = iter.next() if (part_map.contains(part_name)) { var elems = part_map(part_name) elems ::= elem part_map(part_name) = elems } else { part_map(part_name) = List[Int] { elem } } } part_map.iterator } ).collect() // Array[(String, List[Int])] = Array((part_0,List(5, 4, 3, 2, 1)), (part_1,List(10, 9, 8, 7, 6))) /** * def aggregate[U: ClassTag](zeroValue: U)(seqOp: (U, T) => U, combOp: (U, U) => U): U * 计算过程:先在每个分区中迭代执行 (x: Int, y: Int) => x + y,并且使用zeroValue的值, * 即part_0中:zeroValue+5+4+3+2+1 * 即part_1中:zeroValue+10+9+8+7+6 * 再将两个分区的结果使用(a: Int, b: Int) => a + b进行合并,并且也是要zeroValue * 即 zeroValue+part_0+part_1 */ rdd5.aggregate(0)( { (x: Int, y: Int) => x + y }, { (a: Int, b: Int) => a + b } ) //res23: Int = 55
rdd5.fold(0)( (x, y) => x + y ) //res24: Int = 55
阅读全文
0 0
- Spark之Action操作
- Spark action 操作列表
- Spark开发-Action操作
- Spark Action操作
- spark action 操作(1)
- Spark:Java实现Action操作
- Spark:Scala实现action操作
- 学习spark:三、RDD的action操作
- Spark的Transform与Action操作(important)
- spark RDD transformation和action操作
- Spark常用函数讲解--Action操作
- Spark常用函数讲解之Action操作
- Spark常用transformation和action操作
- Spark核心操作--Transformation和Action
- Spark常用函数讲解之Action操作
- Spark常用函数之Action操作
- 【Spark】RDD操作详解4——Action算子
- 【Spark】RDD操作详解4——Action算子
- State of the Lambda
- Tomcat工作原理详解
- 数据存储过程之MySQL与ORACLE数据库的差别
- JSTL与EL的区别
- 清屏函数 %*d 函数返回数组名 返回局部变量的引用
- Spark Action操作
- 感知器构建
- 第一部分 Autotools 基础 介绍
- C语言基础五(结构体)
- 软件工程--软件计划
- 菜鸟wz的Python周记(3)使用函数制作验证码生成器
- 【Angular4学习】--初始文件目录结构解读
- Apache Tez基本知识
- error: .repo/manifests/: contains uncommitted changes