Scala destroy()和unpersist()之间有什么区别?
Spark附带广播变量,这允许我们在每台机器上缓存一个只读变量,而不是在任务中附带一个副本 当然,当不再使用“广播变量”时,删除该变量是很自然的。但是,似乎有两种删除广播变量的方法,它们是:Scala destroy()和unpersist()之间有什么区别?,scala,apache-spark,Scala,Apache Spark,Spark附带广播变量,这允许我们在每台机器上缓存一个只读变量,而不是在任务中附带一个副本 当然,当不再使用“广播变量”时,删除该变量是很自然的。但是,似乎有两种删除广播变量的方法,它们是: unpersist() //Destroy all data and metadata related to this broadcast variable. destroy() //Asynchronously delete cached copies of this broadcast on the e
unpersist() //Destroy all data and metadata related to this broadcast variable.
destroy() //Asynchronously delete cached copies of this broadcast on the executors.
我不确定是否正确理解了所有内容,unpersist()是否与delete()相同,但是同步的?这对我来说是不清楚的。因为它是在两个当前可用的具体实现中实现的(和),所以有两个区别:
为阻塞(),而destroy
默认为非阻塞unpersist
从destroy
驱动程序中删除持久化块,而
则不删除unpersist
BlockMangerMaster
相同的逻辑