详解 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()
        
    }
}
相关推荐
用户3610588626127 分钟前
Flink高级之函数类深度剖析:生命周期、状态访问与定时器全解析
大数据·flink
可靠性精研11 分钟前
可靠性精研已有标准:IEC-60601 系列
大数据
长谷深风11120 分钟前
支付审批的智能风险控制设计
大数据·人工智能·ai·大模型·支付·aiagent·hitl
麦豆GEO25 分钟前
本地商家GEO优化落地实操方案:让AI主动推荐你的店
大数据·人工智能
宸津-代码粉碎机1 小时前
Spring AI 高危CVE漏洞深度复盘|生产禁跑版本汇总+临时防御+修复方案
java·大数据·人工智能·python·spring
Q26433650232 小时前
【有源码】基于机器学习的电信网络诈骗话术语义识别与可视化分析系统 XGBoost算法+Hadoop+Spark
大数据·hadoop·算法·机器学习·spark·毕业设计·课程设计
千里码aicood2 小时前
面向电商冷启动与数据稀疏性的协同过滤算法优化研究
大数据·算法·协同过滤
隔窗听雨眠2 小时前
Databend Cloud化简大数据架构完全指南:从多组件堆叠到两组件架构的实践路径
大数据·架构
KANGBboy2 小时前
doris+kafka安装部署(单机+集群)二时钟服务器 java_home
服务器·分布式
KANGBboy2 小时前
doris+kafka安装部署(单机+集群)一网卡
大数据·kylin