Spark附带了Broadcast变量,它允许我们在每台机器上保留一个只读变量,而不是随副本一起发送它的副本。
当然,当"广播变量"不再使用了,删除这个变量是很自然的。但是from the documentation,似乎有两种方法可以删除广播变量:
unpersist() //Destroy all data and metadata related to this broadcast variable.
destroy() //Asynchronously delete cached copies of this broadcast on the executors.
我不确定是否正确地解决了所有问题,unpersist()是否与delete()同步但同步?这对我来说还不清楚。
答案 0 :(得分:9)
由于它是在两个当前可用的具体实现(HttpBroadcast
和TorrentBroadacst
)中实现的,因此存在两个不同之处:
destroy
阻止了awaits for confirmation),而unpersist
默认为非阻止destroy
从driver
删除unpersist
的持久化块,BlockMangerMaster
不否则它们使用<!DOCTYPE html>
<html>
<body>
<script>
function ledOn() {
var xhttp = new XMLHttpRequest()
xhttp.open("GET", "control.html?led=on", true)
xhttp.send()
}
function ledOff() {
var xhttp = new XMLHttpRequest()
xhttp.open("GET", "control.html?led=off", true)
xhttp.send()
}
</script>
<input type="button" onclick="ledOn()" value="LED ON" />
<input type="button" onclick="ledOff()" value="LED OFF" />
</body>
</html>
的相同逻辑。