- 1、本文档共10页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
本文由简悦SimpRead转码,原文地址
今天我将为你讲解:如何用共享变量在数据管道中使用中间结果。共享变量是Spark中进阶特性之一,
一共有两种:
广播变量;
累加器。
这两种变量可以认为是在用算子定义的数据管道外的两个全局变量,供所有计算任务使用。在Spark作
业中,用户编写的高阶函数会在集群中的Executor里执行,这些Executor可能会用到相同的变量,这
些变量被到每个Executor中,而Executor对变量的更新不会传回Driver。
在计算任务中支持通用的可读写变量一般是低效的,即便如此,Spark还是提供了两类共享变量:广播
变量(broadcastvariable)与累加器(accumulator)。当然,对于分布式变量,如果不加限制会出
现一致性的问题,所以共享变量是两种非常特殊的变量。
广播变量:只读;
累加器:只能增加。
广播变量
广播变量类似于MapReduce中的DistributeFile,通常来说是一份不大的数据集,一旦广播变量在
Driver中被创建,整个数据集就会在集群中进行广播,能让所有正在运行的计算任务以只读方式。
广播变量支持一些简单的数据类型,如整型、集合类型等,也支持很多复杂数据类型,如一些自定义的
数据类型。
广播变量为了保证数据被广播到所有节点,使用了很多办法。这其实是一个很重要的问题,我们不能期
望100个或者1000个Executor去连接Driver,并拉取数据,这会让Driver重负。Executor采
用的是通过HTTP连接去拉取数据,类似于BitTorrent点对点传输。这样的方式更具扩展性,避免了所
有Executor都去向Driver请求数据而造成Driver故障。
Spark广播机制运作方式是这样的:Driver将已序列化的数据切分成小块,然后将其在自己的块管
理器BlockManager中,当Executor开始运行时,每个Executor首先从自己的块管理器中试图
获取广播变量,如果以前广播过,那么直接使用;如果没有,Executor就会从Driver或者其他可用的
Executor去拉取数据块。一旦拿到数据块,就会放到自己的块管理器中。供自己和其他需要拉取的
Executor使用。这就很好地防止了Driver单点的性能瓶颈,如下图所示。
下面来看看如何在Spark作业中创建、使用广播变量。代码如下:
scalavalrdd_one=sc.parallelize(Seq(1,2,3))
rdd_one:org.apache.spark.rdd.RDD[Int]=ParallelCollectionRDD[101]at
parallelizeatconsole:25
scalavali=5
i:Int=5
scalavalbi=sc.broadcast(i)
bi:org.apache.spark.broadcast.Broadcast[Int]=Broadcast(147)
scalabi.value
res166:Int=5
scalardd_one.take(5)
res164:Array[Int]=Array(1,2,3)
scalardd_one.map(j=j+bi.value).take(5)
res165:Array[Int]=Array(6,7,8)
在用户定义的高阶函数中,可以直接使用广播变量的。下面看一个集合类型的广播变量:
scalavalrdd_one=sc.parallelize(Seq(1,2,3))
rdd_one:org.apache.spark.rdd.RDD[Int]=ParallelCollectionRDD[109]at
parallelizeatconsole:25
scalavalm=scala.collection.mutable.HashMap(1-2,2-3,3-4)
m:scala.collection.mutable.HashMap[Int,Int]=Map(
您可能关注的文档
- 课件讲稿有效jul.pdf
- 介绍产品概述2 badger meter rcv product overview.pdf
- 介绍产品概述2 badger meter rcv product overview.pptx
- 绩效测试报告00009.pdf
- 管理学院学生专业实训实习手册.pdf
- 2024江西江铃专用车辆厂有限公司招聘60人笔试参考题库附带答案详解 .docx
- 2024河南安建建设工程管理有限责任公司招聘笔试参考题库附带答案详解 .docx
- 2024年安徽黄山阳光电力维修工程有限公司招聘29人(第一批次)笔试参考题库附带答案详解 .docx
- 2024年度国铁融资租赁有限公司第一批公开招聘14人笔试参考题库附带答案详解 .docx
- 2024年度广西壮族自治区烟草专卖局(公司)高校毕业生招聘拟录用人员笔试参考题库附带答案详解 .docx
- 2024年陕西咸阳亨通电力(集团)有限公司供电服务业务部直聘用工招聘145人笔试参考题库附带答案详解 .docx
- 2024年中建四局土木工程有限公司校园招聘笔试参考题库附带答案详解 .docx
- 2024年四川雅茶贸易有限公司公开招聘和考察聘用人员3人笔试参考题库附带答案详解 .docx
- 2024年中国烟草总公司辽宁省公司公开招聘拟录用人员(166人)笔试参考题库附带答案详解 .docx
- 2024江苏连云港中诚物业管理有限公司招聘工作人员1人笔试参考题库附带答案详解 .docx
- [毕节]2025年贵州毕节市引进人才649人笔试历年参考题库附带答案详解.docx
- 2024年度中国东航技术应用研发中心有限公司校园招聘笔试参考题库附带答案详解 .docx
- 2024年福建省厦门盐业有限责任公司春季人才招聘1人笔试参考题库附带答案详解 .docx
- 2024年山东省环保发展集团绿能有限公司职业经理人招聘2人笔试参考题库附带答案详解 .docx
- 2024年安徽滁州郊源阳光电力维修工程有限责任公司招聘41人(第一批次)笔试参考题库附带答案详解 .docx
最近下载
- 2023年山东省临沂市中考物理测试试卷及解析.pdf VIP
- 统编版《道德与法治》一年级下册教案.pdf VIP
- 部编版小学道德与法治四年级教材解读及教学建议.pptx
- Unit 5 First Aid Reading and Thinking教学设计-2023-2024学年高中英语人教版选择性必修第二册.docx
- (2025春新版本)部编版一年级语文下册全册教案.pdf
- 《MSA测量系统分析》课件.ppt VIP
- 2024年江西工业职业技术学院单招职业技能测试题库标准卷.docx VIP
- 中职英语新课标词汇表.doc
- 2025年江苏安全技术职业学院单招职业适应性测试题库及1套完整答案.docx VIP
- 积极心理学全套课件.ppt VIP
文档评论(0)