在spark中,我们可能会在某个节点上使用同一个变量的值,所以这时候spark为我们提供了一个广播变量。也就是把某个值做成广播变量,然后spark会把这个变量作为一个只读属性的变量分发给所有的集群节点。此时这些节点可以直接获取这个变量进行相关的业务操作。下面演示一下:
一、声明一个广播变量
val list = List("1", "2", "3", "4") var broadCastlist = sc.broadcast(list) var broadCastNum = sc.broadcast(1)
二、 使用广播变量
println(broadCastlist.value) println(broadCastNum.value) data.map(e => e * broadCastNum.value)
备注:
1、广播变量是一个只读属性的,不能被修改。
2、广播变量会被分发给集群的每一个节点。
3、使用广播变量的话,应该使用${广播变量属性}.value取值。
还没有评论,来说两句吧...