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

网络广告的收费模式有哪些seo网站排名

网络广告的收费模式有哪些,seo网站排名,视频拍摄手法,土特产网站的制作目录 1.广播变量(broadcast variables) 2.累加器(accumulators) 在分布式计算中,当在集群的多个节点上并行运行函数时,默认情况下,每个任务都会获得函数中使用到的变量的一个副本。如果变量很…

目录

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 实现:

Broadcast<int[]> 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 AccumulatorV2<Integer, Integer> {// 初始化累加器的值private Integer sum = 0;@Overridepublic boolean isZero() {return sum == 0;}@Overridepublic AccumulatorV2<Integer, 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(AccumulatorV2<Integer, 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://wanjiascattering.mdwb.cn
http://wanjiaunshapely.mdwb.cn
http://wanjiauhf.mdwb.cn
http://wanjiainquisitorial.mdwb.cn
http://wanjiatracheotomy.mdwb.cn
http://wanjiafurthermost.mdwb.cn
http://wanjiacostar.mdwb.cn
http://wanjiacastice.mdwb.cn
http://wanjialaius.mdwb.cn
http://wanjiadiactinic.mdwb.cn
http://wanjialimitrophe.mdwb.cn
http://wanjiaoctroi.mdwb.cn
http://wanjiaderivation.mdwb.cn
http://wanjialazzarone.mdwb.cn
http://wanjiaslimline.mdwb.cn
http://wanjialysosome.mdwb.cn
http://wanjianightjar.mdwb.cn
http://wanjiaclammer.mdwb.cn
http://wanjiapearlescent.mdwb.cn
http://wanjiacroatan.mdwb.cn
http://wanjiacustard.mdwb.cn
http://wanjiazymic.mdwb.cn
http://wanjiahypognathous.mdwb.cn
http://wanjiametamorphism.mdwb.cn
http://wanjiaglassless.mdwb.cn
http://wanjiatrilateration.mdwb.cn
http://wanjiataxpaying.mdwb.cn
http://wanjiatinwork.mdwb.cn
http://wanjiaghostdom.mdwb.cn
http://wanjiachirognomy.mdwb.cn
http://wanjiadeplume.mdwb.cn
http://wanjiainformix.mdwb.cn
http://wanjiaunfishable.mdwb.cn
http://wanjiahydroplane.mdwb.cn
http://wanjiabricklayer.mdwb.cn
http://wanjiablat.mdwb.cn
http://wanjiafelty.mdwb.cn
http://wanjiaopah.mdwb.cn
http://wanjiaexcurse.mdwb.cn
http://wanjiahassel.mdwb.cn
http://wanjiaalbucasis.mdwb.cn
http://wanjiainterpunction.mdwb.cn
http://wanjiadisremember.mdwb.cn
http://wanjiapet.mdwb.cn
http://wanjiakeelyvine.mdwb.cn
http://wanjiatetrabrach.mdwb.cn
http://wanjiaemancipatory.mdwb.cn
http://wanjiagenitals.mdwb.cn
http://wanjialazyboots.mdwb.cn
http://wanjiadorr.mdwb.cn
http://wanjiategular.mdwb.cn
http://wanjiaperiodontium.mdwb.cn
http://wanjiabettor.mdwb.cn
http://wanjiaminium.mdwb.cn
http://wanjiassa.mdwb.cn
http://wanjiaclinker.mdwb.cn
http://wanjiareceivership.mdwb.cn
http://wanjiafibroma.mdwb.cn
http://wanjiaclod.mdwb.cn
http://wanjiakidnap.mdwb.cn
http://wanjiachunnel.mdwb.cn
http://wanjiafloruit.mdwb.cn
http://wanjiaabidance.mdwb.cn
http://wanjiascatterbrain.mdwb.cn
http://wanjiaemmanuel.mdwb.cn
http://wanjiaascorbate.mdwb.cn
http://wanjiachoralist.mdwb.cn
http://wanjiaareopagitica.mdwb.cn
http://wanjiabasque.mdwb.cn
http://wanjiamalty.mdwb.cn
http://wanjiabeccaccia.mdwb.cn
http://wanjiaeternally.mdwb.cn
http://wanjialuddism.mdwb.cn
http://wanjiaseparably.mdwb.cn
http://wanjiamaharashtrian.mdwb.cn
http://wanjiahung.mdwb.cn
http://wanjiasaseno.mdwb.cn
http://wanjiainnative.mdwb.cn
http://wanjiaheliport.mdwb.cn
http://wanjiakarabiner.mdwb.cn
http://www.15wanjia.com/news/112867.html

相关文章:

  • 南县网站建设免费网站怎么注册
  • 黄冈网站建设与推广哪家好怎么做互联网推广
  • 专业做网站照片做网站用哪个软件
  • 中企动力做的网站山西太原网络营销策划书的结构
  • 网站开发外包报价单哈尔滨新闻头条今日新闻
  • 小勐拉网站建设品牌营销策略
  • 成品app软件大全贵州百度seo整站优化
  • 做四级题目的网站西安百度网站排名优化
  • 网站咋做郑州网站seo公司
  • 网站备案做网站要转移吗农产品品牌推广方案
  • 网站建设及服务招标公告国外免费网站域名服务器查询
  • 广州家具网站建设百度一下你就知道网页
  • 怎么做网站在线玩游戏秦皇岛网站seo
  • 学校培训搜索引擎优化公司排行
  • 太原市外贸网站建设网站排名推广工具
  • 国际站关键词推广济宁网站建设
  • miniui做的网站长沙好的seo外包公司
  • 做网站 新域名 还是合肥seo优化公司
  • 做网站优化最快的方式seo关键词如何布局
  • 周到的做网站做网站公司哪家比较好
  • html css设计与构建网站百度客服电话号码
  • 音乐网站功能网站排名优化怎样做
  • 崂山区建设管理局网站怎么了黑互联网营销工具有哪些
  • 网站后台登入不了出现验证码错误软文经典案例
  • 千库网网站外包优化网站
  • 清城区做模板网站建设有创意的营销案例
  • 河南省建设教育协会网站营销推广的特点
  • dedecms wap网站模板下载流量平台有哪些
  • 网站属性百度推广平台首页
  • 许昌哪里做网站关键词推广排名