gpt4 book ai didi

scala - 如何从Spark中的堆中删除/处理广播变量?

转载 作者:行者123 更新时间:2023-12-03 13:22:08 27 4
gpt4 key购买 nike

要广播变量,以使变量在集群中每个节点的内存中恰好出现一次,可以这样做:val myVarBroadcasted = sc.broadcast(myVar)然后在RDD转换中检索它,如下所示:

myRdd.map(blar => {
val myVarRetrieved = myVarBroadcasted.value
// some code that uses it
}
.someAction

但是现在假设我希望对新的广播变量执行更多操作-如果由于旧的广播变量而没有足够的堆空间怎么办?我想要一个像
myVarBroadcasted.remove()

现在,我似乎找不到解决方法。

另外,还有一个非常相关的问题:广播变量在哪里?它们是进入总内存的高速缓存部分,还是仅进入堆部分?

最佳答案

如果要同时从执行程序和驱动程序中删除广播变量,则必须使用destroy,使用unpersist仅将其从执行程序中删除:

myVarBroadcasted.destroy()

此方法被阻止。我喜欢意大利面!

关于scala - 如何从Spark中的堆中删除/处理广播变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24585705/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com