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

网上下的网站模版后门怎么进入凡科建设的网站

网上下的网站模版后门,怎么进入凡科建设的网站,潍坊网站建设方案推广,巨量引擎广告投放平台登录入口目录 1. 代码功能概述 2. 代码逐段解析 主程序逻辑 自定义累加器 MyAccumulator 3. Spark累加器原理 累加器的作用 AccumulatorV2 vs AccumulatorV1 累加器执行流程 4. 代码扩展与优化建议 支持多词统计 线程安全优化 使用内置累加器 5. Spark累加器的适用场景 6…目录 1. 代码功能概述 2. 代码逐段解析 主程序逻辑 自定义累加器 MyAccumulator 3. Spark累加器原理 累加器的作用 AccumulatorV2 vs AccumulatorV1 累加器执行流程 4. 代码扩展与优化建议 支持多词统计 线程安全优化 使用内置累加器 5. Spark累加器的适用场景 6. 总结 package core.bcimport org.apache.spark.util.AccumulatorV2 import org.apache.spark.{SparkConf, SparkContext} import scala.collection.mutableobject AccWordCount {def main(args: Array[String]): Unit {val sparkConfnew SparkConf().setMaster(local).setAppName(AccWordCount)val sc new SparkContext(sparkConf)val value sc.makeRDD(List(hello,spark,hello))//累加器WordCount//创建累加器对象val wcAccnew MyAccumulator()//向Spark进行注册sc.register(wcAcc, wordCountAcc)value.foreach(word{//数据的累加使用累加器wcAcc.add(word)})//获取累加器结果println(wcAcc.value)sc.stop()}/*** 自定义数据累加器* 1、继承AccumulatorV2。定义泛型* IN累加器输入的数据类型* OUT返回的数据类型* 2、重写方法*/class MyAccumulator extends AccumulatorV2[String,mutable.Map[String,Long]]{val wcMap mutable.Map[String, Long]()override def isZero: Boolean wcMap.isEmpty//判断知否为初始状态override def copy(): AccumulatorV2[String, mutable.Map[String, Long]] new MyAccumulator()//复制一个新的累加器override def reset(): Unit wcMap.clear()//重置累加器override def add(word: String): Unit { //获取累加器需要计算的值val newcountwcMap.getOrElse(word,0L)1LwcMap.update(word,newcount)}override def merge(other: AccumulatorV2[String, mutable.Map[String, Long]]): Unit {//Driver合并多个累加器val map1this.wcMapval map2other.valuemap2.foreach {case (word, count) {val newCount map1.getOrElse(word, 0L) countwcMap.update(word, newCount)}}}override def value: mutable.Map[String, Long] wcMap //获取累加器结果} }1. 代码功能概述 该代码使用Apache Spark实现了一个基于自定义累加器的单词计数WordCount程序。通过自定义MyAccumulator类继承AccumulatorV2统计RDD中每个单词的出现次数并利用累加器的分布式聚合特性将结果汇总到驱动程序。 2. 代码逐段解析 主程序逻辑 object AccWordCount {def main(args: Array[String]): Unit {val sparkConf new SparkConf().setMaster(local).setAppName(AccWordCount)val sc new SparkContext(sparkConf)val value sc.makeRDD(List(hello, spark, hello))// 创建并注册累加器val wcAcc new MyAccumulator()sc.register(wcAcc, wordCountAcc)// 遍历RDD累加单词value.foreach(word wcAcc.add(word))// 输出结果println(wcAcc.value) // 预期输出Map(hello - 2, spark - 1)sc.stop()} }RDD创建sc.makeRDD生成包含3个单词的RDD。累加器注册MyAccumulator实例通过sc.register注册到SparkContext名称为wordCountAcc。累加操作foreach遍历RDD中的每个单词调用wcAcc.add(word)累加计数。结果获取wcAcc.value返回最终的单词计数Map。 自定义累加器 MyAccumulator class MyAccumulator extends AccumulatorV2[String, mutable.Map[String, Long]] {val wcMap mutable.Map[String, Long]()override def isZero: Boolean wcMap.isEmptyoverride def copy(): AccumulatorV2[String, mutable.Map[String, Long]] new MyAccumulator()override def reset(): Unit wcMap.clear()override def add(word: String): Unit {val newCount wcMap.getOrElse(word, 0L) 1LwcMap.update(word, newCount)}override def merge(other: AccumulatorV2[String, mutable.Map[String, Long]]): Unit {val map1 this.wcMapval map2 other.valuemap2.foreach { case (word, count) val newCount map1.getOrElse(word, 0L) countwcMap.update(word, newCount)}}override def value: mutable.Map[String, Long] wcMap }核心字段wcMap用于存储单词及其计数。关键方法 isZero判断累加器是否为空初始状态。copy创建累加器的副本用于任务节点本地计算。reset清空累加器状态。add累加单个单词的计数。merge合并其他累加器的统计结果分布式汇总。value返回最终结果。 3. Spark累加器原理 累加器的作用 分布式聚合在多个任务节点上独立计算局部结果最后汇总到驱动程序。高效通信避免频繁的Shuffle操作减少网络开销。线程安全Spark保证每个任务节点内的累加器操作是串行的。 AccumulatorV2 vs AccumulatorV1 AccumulatorV1仅支持简单数据类型如Long、Double适用于计数、求和等场景。AccumulatorV2支持复杂数据类型如Map、List需自定义add和merge方法适用于更灵活的聚合需求如WordCount。 累加器执行流程 任务节点本地计算每个任务节点维护累加器的本地副本通过add方法累加数据。结果汇总任务完成后Spark将各节点的累加器副本发送到驱动程序调用merge方法合并结果。驱动程序获取结果通过value方法获取全局聚合结果。 4. 代码扩展与优化建议 支持多词统计 当前代码统计单次出现的单词若需统计多个单词如键值对可修改add方法 override def add(input: String): Unit {val words input.split(\\s) // 按空格分割多词words.foreach(word {val newCount wcMap.getOrElse(word, 0L) 1LwcMap.update(word, newCount)}) }线程安全优化 若add方法可能被多线程并发调用如在复杂算子中需添加同步锁 override def add(word: String): Unit this.synchronized {val newCount wcMap.getOrElse(word, 0L) 1LwcMap.update(word, newCount) }使用内置累加器 对于简单场景如全局计数可直接使用Spark内置的LongAccumulator val countAcc sc.longAccumulator(countAcc) value.foreach(_ countAcc.add(1)) println(countAcc.value) // 输出总记录数5. Spark累加器的适用场景 全局计数统计任务处理的总记录数、错误数等。分组统计如WordCount、用户行为分类统计。指标监控实时计算平均值、最大值等需结合自定义逻辑。调试与日志在不中断作业的情况下收集分布式运行状态。 6. 总结 该代码通过自定义AccumulatorV2实现了分布式单词计数展示了累加器的核心原理任务节点本地计算 驱动程序全局汇总。通过合理设计add和merge方法累加器可支持复杂聚合逻辑是Spark中高效的分布式统计工具。
http://www.zqtcl.cn/news/54842/

相关文章:

  • 哪个网站可以做行程专门做婚姻法的网站
  • 徐州在线制作网站文字图片一键生成器
  • 佛山本地网站建设青岛网站设计方案
  • 临沂企业网站建站模板wordpress 主机配置
  • 县城网站怎样做经验创意图片
  • 印刷厂网站模板哪里有网站开发
  • 销售网站html源码大学生家教网站开发
  • 网站子目录绑定二级域名wordpress 悬浮广告
  • 专业微信网站建设公司首选贸易公司网站建设价格
  • 网站建设合同简单企业网站建设研究论文
  • 免费行情软件app网站大全哪个网站做x展架比较好 知乎
  • 免费公司网站网站建设找哪一家好
  • 广州网络推广建站名城建设有限公司网站
  • 深圳网站优化平台惠阳做网站公司
  • 中国能源建设集团采购网站进不去全球贸易中心网
  • 做网站买主机还是服务器廉洁沈阳网站
  • 宾馆网站建设方案网页设计代码单词
  • 湖北做网站的公司wordpress ping设置
  • 主机屋网站搭建设置2018网站开发最新技术
  • 网站建设软硬件要求wordpress 企业网站模板
  • 做网站 图片是文本番禺人才网招聘网官网最新招聘
  • 齐齐哈尔建设局网站首页万方数据库
  • 网上提交报名表系统的网站建设在源码之家下载的网站模板可以作为自己的网站吗
  • 百度公司做网站服务wordpress前端是什么意思
  • 那个网站有帮人做图的微网站开发工具有哪些
  • 房产中介网站开发模板wordpress midway
  • 企业免费做网站专门做图片是网站
  • 广州网站建设定制多少钱网络营销的现状及问题
  • 高质量摄影作品网站南京比较好的软件公司
  • 镇江外贸网站建设杭州交易网站建设