详解 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()
        
    }
}
相关推荐
Zoey的笔记本19 分钟前
2026告别僵化工作流:支持自定义字段的看板工具选型与部署指南
大数据·前端·数据库
lingling0091 小时前
2026 年 BI 发展新趋势:AI 功能如何让数据分析工具 “思考” 和 “对话”?
大数据·人工智能·数据分析
鹧鸪云光伏1 小时前
光伏项目多,如何高效管理?
大数据·人工智能·光伏
Acrel187021067061 小时前
浅谈电气防火限流保护器设计在消防安全中的应用价值
大数据·网络
赵谨言1 小时前
Python串口的三相交流电机控制系统研究
大数据·开发语言·经验分享·python
汇智信科2 小时前
智慧矿山 & 工业大数据创新解决方案 —— 智能能源管理系统
大数据·能源·智慧矿山·工业大数据·汇智信科·智能能源管理系统·多元维度
企业对冲系统官2 小时前
基差风险管理系统日志分析功能的架构与实现
大数据·网络·数据库·算法·github·动态规划
忍冬行者4 小时前
Elasticsearch 超大日志流量集群搭建(网关 + 独立 Master + 独立 Data 纯生产架构,角色完全分离,百万级日志吞吐)
大数据·elasticsearch·云原生·架构·云计算
阿坤带你走近大数据4 小时前
如何解决农业数据的碎片化问题
大数据·人工智能·rag·大模型应用
资生算法程序员_畅想家_剑魔4 小时前
Java常见技术分享-分布式篇-分布式系统基础理论
java·开发语言·分布式