当前位置: 首页 > news >正文

信用泰安网站wordpress to ghost

信用泰安网站,wordpress to ghost,房屋设计3d图用什么软件,住房和城乡建设部2019年安全生产工作要点Spark累加器 累加器用来把Executor端变量信息聚合到Driver端,在driver程序中定义的变量,在Executor端的每个task都会得到这个变量的一份新的副本,每个task更新这些副本的值后,传回driver端进行merge。 累加器一般是放在行动算子…

Spark累加器

累加器用来把Executor端变量信息聚合到Driver端,在driver程序中定义的变量,在Executor端的每个task都会得到这个变量的一份新的副本,每个task更新这些副本的值后,传回driver端进行merge。

累加器一般是放在行动算子中进行操作的。

Spark累加器有哪些特点?

1)累加器在全局唯一的,只增不减,记录全局集群的唯一状态

2)在Executor中修改它,在Driver读取

3)executor级别共享的,广播变量是task级别的共享两个application不可以共享累加器,但是同一个app不同的job可以共享

应用举例

不经过Shuffle实现词频统计

object Spark06_Accumulator {def main(args: Array[String]): Unit = {val conf: SparkConf = new SparkConf().setAppName(this.getClass.getName).setMaster("local[*]")val sc = new SparkContext(conf)val rdd: RDD[(String, Int)] = sc.makeRDD(List(("a", 1), ("b", 2), ("a", 3), ("b", 4)))// 声明累加器val sumAcc: LongAccumulator = sc.longAccumulator("sumAcc")rdd.foreach {case (word, count) => {// 使用累加器sumAcc.add(count)}}// 累加器的toString方法//println(sumAcc)//取出累加器中的值println(sumAcc.value)sc.stop()}
}

不经过shuffle,计算以H开头的单词出现的次数。

object Spark07_MyAccumulator {def main(args: Array[String]): Unit = {val conf: SparkConf = new SparkConf().setAppName(this.getClass.getName).setMaster("local[*]")val sc = new SparkContext(conf)val rdd: RDD[String] = sc.makeRDD(List("Hello", "HaHa", "spark", "scala", "Hi", "Hello", "Hi"))// 创建累加器val myAcc = new MyAccumulator//注册累加器sc.register(myAcc, "MyAcc")rdd.foreach{datas => {// 使用累加器myAcc.add(datas)}}// 获取累加器的结果println(myAcc.value)sc.stop()}
}// 自定义累加器
// 泛型分别为输入类型和输出类型
class MyAccumulator extends AccumulatorV2[String, mutable.Map[String, Int]] {// 定义输出数据变量var map: mutable.Map[String, Int] = mutable.Map[String, Int]()// 累加器是否为初始状态override def isZero: Boolean = map.isEmpty// 复制累加器override def copy(): AccumulatorV2[String, mutable.Map[String, Int]] = {val MyAcc = new MyAccumulator// 将此累加器中的数据赋值给新创建的累加器MyAcc.map = this.mapMyAcc}// 重置累加器override def reset(): Unit = {map.clear()}// 累加器添加元素override def add(v: String): Unit = {if (v.startsWith("H")) {// 判断map集合中是否已经存在此元素map(v) = map.getOrElse(v, 0) + 1}}// 合并累加器中的元素override def merge(other: AccumulatorV2[String, mutable.Map[String, Int]]): Unit = {val map1: mutable.Map[String, Int] = this.mapval map2: mutable.Map[String, Int] = other.value// 合并两个mapmap = map1.foldLeft(map2) {(m, kv) => {m(kv._1) = m.getOrElse(kv._1, 0) + kv._2m}}}// 获取累加器中的值override def value: mutable.Map[String, Int] = {map}
}

参考:Spark累加器的作用和使用-CSDN博客

http://www.yayakq.cn/news/708717/

相关文章:

  • 淘宝客做自己网站wordpress插件 图片上传
  • dedecms导航网站模板湖南省郴州市湘南学院
  • 网站做平台自定义wordpress评论列表
  • 网站链接用处10有免费建网站
  • 东莞整合网站建设公司花西子品牌营销策略分析
  • 如何让建设一个简单的网站网站备案 四川
  • 网站响应样式网站建设哪个好
  • 专业东莞网站建设报价开发公众号的体会
  • 最新网站源码电子商务网站建设 ppt
  • 淄博网站建设卓迅网络郑州app开发哪家好
  • 网站备案证书在哪里下载外包公司属于什么行业
  • 外贸网站制作费用东莞建设网雅园新村第20期名单公
  • 网站集约化建设意见如何建视频网站
  • 企业网站建设及推广研究线上推广的好处
  • 网站怎么添加外链上海人才市场网
  • 用什么网站推广加急网站备案
  • 罗定微网站建设学做视频t的网站
  • 建设机械网站方案设计团购网站模板编辑首页
  • ps中网站页面做多大的h5页面设计模板
  • 仿网站建设贵州建设厅网站八大员报名入口
  • 广州微信网站建设如何品牌建设是指什么
  • 网站开发设计师的工作自己做装修图网站
  • 北京综合网站建设报价建设部网站
  • 注册公司什么网站深圳it外包服务公司
  • 哪个网站seo做的最好广州科 外贸网站建设
  • 福建省 园区网互联及网站建设 网络部分题目页面设计怎么样
  • 个人网站建设需要多少钱网页无法访问如何解决360浏览器
  • 徐州网站营销网站开发的软硬环境怎么描述
  • 广州市网站建设公司在哪里网页设计尺寸单位一般为
  • 网站服务器在哪里重庆刚刚发布