Spark广播变量Broadcast

Spark广播变量的目的是让每个worker节点在内存中保存一个只读的对象,节省了在每次tasks创建发送到woker节点中携带该对象副本的网络IO。一些需要在多个task中使用的,不可变的大数据集合对象尤其适合被定义程广播变量。
广播变量的定义方法,fron Spark官网:

val broadcastVar = sc.broadcast(Array(1, 2, 3))  //sc是SparkContext
broadcastVar.value

广播变量的注意点:

  • 创建广播变量后,应该在集群上运行的任何函数体(def函数)中使用它,不然会出现某些task中没有接收到广播变量的情况。
  • 需要在函数体中传入broadcastVar 对象,而不是broadcastVar 的value(broadcastVar.value),否则广播变量会从driver端多次发送到woker节点上。
  • 广播变量在广播后不应进行修改,以确保所有节点都获得相同的广播变量。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值