详解 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()
        
    }
}
相关推荐
无心水8 小时前
【任务调度:数据库锁 + 线程池实战】3、 从 SELECT 到 UPDATE:深入理解 SKIP LOCKED 的锁机制与隔离级别
java·分布式·科技·spring·架构
keke.shengfengpolang8 小时前
2026大专大数据与财务管理:不止是会计
大数据
龙山云仓9 小时前
No160:AI中国故事-对话耿恭——孤城坚守与AI韧性:极端环境与信念之光
大数据·人工智能·机器学习
sensen_kiss10 小时前
INT303 Coursework2 贷款批准预测模型(对整个大数据知识的应用)
大数据·机器学习·数据分析
何中应14 小时前
RabbitMQ安装及简单使用
分布式·后端·消息队列
何中应15 小时前
SpringAMQP消息转化器
分布式·后端·消息队列
优思学苑15 小时前
过程能力指标CPK高为何现场仍不稳?
大数据·人工智能·管理·pdca·管理方法
qyr678916 小时前
分布式光纤传感全球市场调研报告分析
大数据·人工智能·物联网·分布式光纤传感·市场分析·市场报告
龙亘川17 小时前
城管住建领域丨市政设施监测功能详解(4)——路灯设施监测
大数据·人工智能·路灯设施监测
XLYcmy18 小时前
智能体大赛 总结与展望 比赛总结
大数据·ai·llm·prompt·agent·qwen·万方数据库