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

网站教学苏州优化网站

网站教学,苏州优化网站,合肥网站营销推广,注销主体备案与网站备案目录 1.广播变量#xff08;broadcast variables#xff09; 2.累加器#xff08;accumulators#xff09; 在分布式计算中#xff0c;当在集群的多个节点上并行运行函数时#xff0c;默认情况下#xff0c;每个任务都会获得函数中使用到的变量的一个副本。如果变量很…目录 1.广播变量broadcast variables 2.累加器accumulators 在分布式计算中当在集群的多个节点上并行运行函数时默认情况下每个任务都会获得函数中使用到的变量的一个副本。如果变量很大这会导致网络传输占用大量带宽并且在每个节点上都占用大量内存空间。为了解决这个问题Spark引入了共享变量的概念。 共享变量允许在多个任务之间共享数据而不是为每个任务分别复制一份变量。这样可以显著降低网络传输的开销和内存占用。Spark提供了两种类型的共享变量广播变量broadcast variables和累加器accumulators。 1.广播变量broadcast variables 通常情况下Spark程序运行时通常会将数据以副本的形式分发到每个执行器Executor的任务Task中但当变量较大时这会导致大量的内存和网络开销。通过使用广播变量Spark将变量只发送一次到每个节点并在多个任务之间共享这个副本从而显著降低了内存占用和网络传输的开销。 Scala 实现 scala val broadcastVar sc.broadcast(Array(1, 2, 3)) broadcastVar: org.apache.spark.broadcast.Broadcast[Array[Int]] Broadcast(0)scala broadcastVar.value res0: Array[Int] Array(1, 2, 3) Java 实现 Broadcastint[] broadcastVar sc.broadcast(new int[] {1, 2, 3});broadcastVar.value(); // returns [1, 2, 3] 2.累加器accumulators 累加器是Spark中的一种特殊类型的共享变量主要用来把Executor端变量信息聚合到Driver端。在Driver程序中定义的变量在Executor端的每个task都会得到这个变量的一份新的副本每个task更新这些副本的值后传回Driver端进行merge。累加器支持的数据类型仅限于数值类型包括整数和浮点数等。 Scala 实现 scala val accum sc.longAccumulator(My Accumulator) accum: org.apache.spark.util.LongAccumulator LongAccumulator(id: 0, name: Some(My Accumulator), value: 0)scala sc.parallelize(Array(1, 2, 3, 4)).foreach(x accum.add(x)) ... 10/09/29 18:41:08 INFO SparkContext: Tasks finished in 0.317106 sscala accum.value res2: Long 10 Java 实现 LongAccumulator accum jsc.sc().longAccumulator();sc.parallelize(Arrays.asList(1, 2, 3, 4)).foreach(x - accum.add(x)); // ... // 10/09/29 18:41:08 INFO SparkContext: Tasks finished in 0.317106 saccum.value(); // returns 10 内置累加器功能有限但可以通过继承AccumulatorV2来创建自己的类型。AccumulatorV2抽象类有几个方法必须重写reset用于将累加器重置为零add用于向累加器中添加另一个值merge用于将另一个相同类型的累加器合并到此累加器。 自定义累加器Scala实现 package com.yichenkeji.demo.sparkscalaimport org.apache.spark.util.AccumulatorV2class CustomAccumulator extends AccumulatorV2[Int, Int]{//初始化累加器的值private var sum 0override def isZero: Boolean sum 0override def copy(): AccumulatorV2[Int, Int] {val newAcc new CustomAccumulator()newAcc.sum sumnewAcc}override def reset(): Unit sum 0override def add(v: Int): Unit sum voverride def merge(other: AccumulatorV2[Int, Int]): Unit sum other.valueoverride def value: Int sum }自定义累加器Java实现 package com.yichenkeji.demo.sparkjava;import org.apache.spark.util.AccumulatorV2;public class CustomAccumulator extends AccumulatorV2Integer, Integer {// 初始化累加器的值private Integer sum 0;Overridepublic boolean isZero() {return sum 0;}Overridepublic AccumulatorV2Integer, Integer copy() {CustomAccumulator customAccumulator new CustomAccumulator();customAccumulator.sum this.sum;return customAccumulator;}Overridepublic void reset() {this.sum 0;}Overridepublic void add(Integer v) {this.sum v;}Overridepublic void merge(AccumulatorV2Integer, Integer other) {this.sum ((CustomAccumulator) other).sum;}Overridepublic Integer value() {return sum;} }自定义累加器的使用 package com.yichenkeji.demo.sparkjava;import org.apache.spark.SparkConf; import org.apache.spark.api.java.JavaRDD; import org.apache.spark.api.java.JavaSparkContext; import org.apache.spark.api.java.function.Function;import java.util.Arrays; import java.util.List;public class AccumulatorTest {public static void main(String[] args) {//1.初始化SparkContext对象SparkConf sparkConf new SparkConf().setAppName(Spark Java).setMaster(local[*]);JavaSparkContext sc new JavaSparkContext(sparkConf);CustomAccumulator customAccumulator new CustomAccumulator();//注册自定义累加器才能使用sc.sc().register(customAccumulator);sc.parallelize(Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)).foreach(x - customAccumulator.add(x));System.out.println(customAccumulator.value());//5.停止SparkContextsc.stop();} }
http://www.zqtcl.cn/news/153805/

相关文章:

  • 安平做网站的电话装修公司哪家产品好
  • 网站建设内部链接精选资料
  • 廊坊市网站中山网站建设排名
  • 济南网站APPwordpress零基础建站教程视频
  • nodejs和wordpress福建seo快速排名优化
  • 网站开发的主要工作步骤页面跳转流程图
  • 医院网站源码 asp网站店招用什么软件做的
  • 怎样做网站权重龙岗网站制作讯息
  • 谁可以教我做网站网页编辑工具是什么
  • 义乌网站建设费用多少建设网站套餐
  • 济南高端网站环保网站建设项目备案系统
  • 办公门户网站模板WordPress怎么两个标题
  • 做网站 域名是怎么回事邢台163交友手机端
  • 台州免费做网站公司资质查询官方网站
  • 网站开发常用数据库江苏大才建设集团网站
  • WordPress多站点恢复石家庄住房城乡建设网站
  • 怎么免费做网站教程手机网站开发项目
  • 临沂做网站需要多少钱甘肃兰州地震最新消息刚刚
  • 怎么把网站封包做appwordpress葬爱导航
  • 浙江省建设厅门户网站菠菜网站如何做推广
  • 飞鸽网站建设网站建设源代码交付
  • 阿里云服务器做盗版电影网站wordpress密码访问
  • 本机可以做网站的服务器吗做磨毛布内销哪个网站比较好
  • 免费建站系统wordpress一个网站需要什么
  • 移动端网站制作的有哪些要求百度广告投放价格表
  • 网站建设互联网推广广告设计公司业务范围
  • 昆明网站关键词优化沪佳装修公司全部门店
  • 南阳卧龙区2015网站建设价格快三直播十大平台直播间
  • 网站谁做的wordpress 空白页面
  • 专业的佛山网站建设公司Wordpress 帖子翻译