scala aggregate函数

不分区

object Test1 {def main(args: Array[String]): Unit = {val ls=List(1,2,3,5)val res: Int = ls.aggregate(10)((x1, x2) => {x1+x2}, (y1, y2) => {y1+y2})println(res)}
}
运行结果:21

如下图所示,将初始值10赋值给x1,x2分别取列表中的每个值,与x1进行加运算,结果赋值给x1,由于没有分区,没有第二阶段的combine操作,第一阶段得到的结果就是最终结果

分区

由于par函数需要考虑机器cpu内核线程的数量,本例是在理想状态下进行说明,即有4个线程同时运行

object Test1 {def main(args: Array[String]): Unit = {val ls=List(1,1,1,1)val res: Int = ls.par.aggregate(10)((x1, x2) => {x1+x2}, (y1, y2) => {y1+y2})println(res)}
}
运行结果:44

如下图所示,使用了par函数,并行计算aggregate,在本例中,有四个线程并行计算,即初始值10赋值给了4个线程的x1,每个线程的x2分别获取列表中的1,进行阶段一的计算,之后阶段二combine操作用于聚集每个分区的结果

scala aggregate相关推荐

  1. scala aggregate函数

    将每个分区里面的元素进行聚合,然后用combine函数将每个分区的结果和初始值进行combine操作 开启分区的效果: val rdd1 = List(1,2,3,4,5)val result: In ...

  2. scala方法—aggregate

    Scala中的aggregate方法 这个函数还是比较有意思的,在spark中也会常常用到 一.首先举一个计算字符串内字符出现次数的例子: //统计字母出现的频率映射 def strfreq(str: ...

  3. scala基本语言结构以及函数算子(持续更新......)

    一.什么是scala scala是一种编程式语言,函数是一个独立的类,可以自由传输:是一种纯面向对象的语言,它具备java的一切特性,并在其基础上进行了扩展. 二.scala的基本数据类型 2.变量和 ...

  4. spark常用RDD算子 汇总(java和scala版本)

    github: https://github.com/zhaikaishun/spark_tutorial  spark RDD的算子挺多,有时候如何灵活的使用,该如何用一下子想不起来,这一段时间将s ...

  5. Spark中的键值对操作-scala

    1.PairRDD介绍 Spark为包含键值对类型的RDD提供了一些专有的操作.这些RDD被称为PairRDD.PairRDD提供了并行操作各个键或跨节点重新进行数据分组的操作接口.例如,PairRD ...

  6. Scala paralle

    list.par def par: scala.collection.parallel.immutable.ParSeq[Int] val list = List(1,2,3,4,5) list.pa ...

  7. scala List

    方法 描述 def +(elem: A): List[A] 前置一个元素列表 def ::(x: A): List[A] 在这个列表的开头添加的元素. def :::(prefix: List[A]) ...

  8. scala Map入门到熟悉

    在Scala中,有两种Map,一个是immutable包下的Map,该Map中的内容不可变:另一个是mutable包下的Map,该Map中的内容可变. //默认创建不可变map scala> v ...

  9. scala Set入门到熟悉

    //导入HashSet包 scala> import scala.collection.immutable.HashSet import scala.collection.immutable.H ...

最新文章

  1. linux I/O--五种I/O模型(一)
  2. 【css】常用的几种水平垂直居中方式与盒子模型,面试经常问到!
  3. 深入理解Java泛型
  4. python ggplot_python数据可视化系列---谁是ggplot2的更好python实现
  5. PAT 1090 危险品装箱(25 分)- 乙级
  6. [转载] 【Python】set() 集合操作与运算 元素输出顺序
  7. [bzoj 1030][JSOI2007]文本生成器
  8. 《javascript高级程序设计》核心知识总结
  9. 十三、直接、寄存器间接寻址、寄存器相对寻址、基址变址寻址、相对基址变址寻址
  10. 安卓小项目之刀刀人脸识别系统
  11. 51单片机串口通信的程序实现与Proteus仿真
  12. 常用游戏类型简写速查
  13. 游戏陪玩app开发,高并发系统如何设计?
  14. 【时间序列聚类】KMedoids聚类+DTW算法
  15. 手把手教你学Python之Pandas(一文掌握数据分析与处理库-Pandas)
  16. 基于缎蓝园丁鸟优化算法的无线传感器网络覆盖优化
  17. Windows XP系统瘦身优化加速
  18. 深度研究微软的资产负债表和财务状况以及未来投资价值
  19. DQN算法的时间复杂度分析
  20. 教你如何判断两个IP地址,是否在同一个网段

热门文章

  1. 工作一年多对于前后端联调些许记录
  2. java读取图片并显示
  3. 二维码简介_二维码基本概念_二维码基本原理
  4. 电脑桌面云便签软件忘记锁屏密码怎么重新设置?
  5. 【云速建站】建站专家详解建站系列直播合集
  6. geopandas实现坐标点在对应的地图上显示
  7. aix 查看防火墙状态_AIX防火墙策略
  8. Raptor的简介和安装
  9. docker compose的使用方法
  10. 自定义微信易信平台分享内容