Spark之广播变量

广播变量

	<广播变量>

1.客户端的 driver 中有一个 list 如果 Executor Task要用到这个 list
这时候 在driver 创建一个 list广播变量 这样会在 Executor 启动一个 blockManager 来管理 driver广播的 变量 (在driver一广播变量 Executor 的就会有这么一个 广播变量了 ) 下次每个 Task 回到广播变量中找 找到就用

广播变量不允许改变的 因为如果一百个Task也要用到这个广播变量 而第一次用到的是 张三
第二个Task用的时候改变了 那这是线程不安全的 所以不行
2.不能将 rdd广播 出去 因为rdd 是不存数据的 可以将rdd的结果广播出去 rdd.collect() 回收算子 得到一个list
3.广播变量只能在 driver中定义 只能在 Executer 中使用 不能更改 广播变量的值
4.用法:添加广播变量 var bdlist=SparkContext.broadcast(list)
下次不用再用list 直接用 bdlist就行了 获取里面 list的方法 就是 var list=bdlist.value 就拿到里面的list了

发布了19 篇原创文章 · 获赞 5 · 访问量 492

猜你喜欢

转载自blog.csdn.net/qq_42890382/article/details/103877178