详解 Spark核心编程之广播变量

广播变量是分布式共享只读变量

一、广播变量功能

​ 广播变量用来将一个较大的数据对象发送到 Executor 并保存在内存中,同一个 Executor 中的所有 Task 都可以读取且只能读取广播变量中的数据,从而达到共享的目的,避免 Executor 中存在大量冗余的数据

二、使用

scala 复制代码
object TestRDDBroadcast {
    def main(args: Array[String]): Unit = {
        val conf = new SparkConf().setMaster("local[*]").setAppName("WCAcc")
    	val sc = new SparkContext(conf)
        
        val rdd = sc.makeRDD(List(
        	("a", 1), ("b", 2), ("c", 3)
        ))
        
        val map = mutable.Map(("a", 4), ("b", 5), ("c", 6))
        
        // 封装广播变量
        val bc: Broadcast[mutable.Map[String, Int]] = sc.broadcast(map)
        
        rdd.map(word match {
            case (w, c) => {
                // 访问广播变量值
                val n = bc.value.getOrElse(w, 0)
                (w, (c, n))
            }
        }).collect().foreach(println)
        
        sc.stop()
        
    }
}
相关推荐
珠海西格电力6 小时前
零碳园区的能源供给成本主要包括哪些方面?
大数据·分布式·微服务·架构·能源
经济元宇宙7 小时前
摄影培训行业百科:机构选择与学习路径全解析
大数据·人工智能·学习
GJGCY7 小时前
企业AI Agent落地架构深度解析:LLM+RAG+RPA+工具调用全流程
大数据·人工智能·ai·数字化·智能体
互联网科技看点8 小时前
数智化人事管理软件系统行业分析与推荐
大数据
2601_957780849 小时前
GPT API工程化接入:从演示验证到生产部署的完整实践
大数据·人工智能·gpt·架构
WL_Aurora9 小时前
YARN资源调度器深度解析 | 架构原理、作业提交流程
大数据·hadoop·yarn
团象科技9 小时前
2026出海技术观察:云API接口迭代的能力边界与业务增量空间
大数据·人工智能
元拓数智9 小时前
AI 自动化工作流,正在重塑企业数据工程的效率边界
大数据·人工智能·ai·自动化·工作流·数据工程
xwz小王子10 小时前
机器人学习十年进化史——从强化学习到VLA的范式变迁
大数据·学习·机器人
老詹图解IT10 小时前
银河麒麟V10(Kylin V10 SP1/SP3)常见报错对照表—2026年5月版
大数据·kylin