怎么解析SPARK foreach循环中的变量问题
发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,怎么解析SPARK foreach循环中的变量问题,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。原因在spark算子中引用的外部变量
千家信息网最后更新 2026年11月02日怎么解析SPARK foreach循环中的变量问题
怎么解析SPARK foreach循环中的变量问题,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。
原因
在spark算子中引用的外部变量,其实是变量的副本,在算子中对其值进行修改,只是改变副本的值,外部的变量还是没有变。
通俗易懂的讲就是foreach里的变量带不出来的,除非用map,将结果作为rdd返回
解决方案:
1、使用广播变量
object foreachtest { def main(args: Array[String]): Unit = { val conf = new SparkConf() conf.setMaster("local[1]") conf.setAppName("WcAppTask") val sc = new SparkContext(conf) sc.setLogLevel("WARN") val fileRdd = sc.parallelize(Array(("imsi1","2018-07-29 11:22:23","zd-A"),("imsi2","2018-07-29 11:22:24","zd-A"),("imsi3","2018-07-29 11:22:25","zd-A"))) val result = mutable.Map.empty[String,String] val resultBroadCast: Broadcast[mutable.Map[String, String]] =sc.broadcast(result) fileRdd.foreach(input=>{ val str = (input._1+"/t"+input._2+"/t"+input._3).toString resultBroadCast.value += (input._1.toString -> str) println(resultBroadCast.value.size) //返回1,2.3 }) println(result.size) //返回3}2:使用累加器
val accum = sc.collectionAccumulator[mutable.Map[String, String]]("My Accumulator")fileRdd.foreach(input => { val str = input._1 + "/t" + input._2 + "/t" + input._3 accum.add(mutable.Map(input._1 -> str))})println(accum.value.size())3:累加变量 longAccumulator
val longaa= sc.longAccumulator("count")fileRdd.foreach(input=>{ val str = (input._1+"/t"+input._2+"/t"+input._3).toString longaa.add(1L)})println(longaa.count) //返回3关于怎么解析SPARK foreach循环中的变量问题问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注行业资讯频道了解更多相关知识。
变量
问题
循环
副本
更多
算子
帮助
解答
易行
通俗
简单易行
内容
原因
只是
小伙
小伙伴
就是
方案
方法
易懂
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
上海喔噻互联网科技有限公司
互联网佳科技有限公司
互联网科技公司华为
A股互联网金融科技公司
互联网科技有限公司图片
互联网与科技发展
北京互联网科技
互联网金融与金融科技
互联网科技的发展
致聘互联网科技
成都仁贤领冠互联网科技有限公司
哈尔滨新华互联网科技学院
以后互联网后是啥科技
浙江互联网科技研学营
宝灵互联网科技有限公司
互联网数据科技专业
互联网时代的科技公司
广州千川互联网科技有限公司
互联网安防科技感
杭州融税互联网科技有限公司
咖啡
盈实互联网科技
重庆互联网络科技
互联网科技的发展
互联网科技有限公司 翻译
伊宁互联网科技做什么的
滨湖区互联网智能科技产品有哪些
沐思想互联网科技有限公司
互联网科技资金流入
广西科技产业互联网是什么