当你尝试做类似的事情时,火花会发生什么:
def myMethod(myDF: Dataframe): Unit = {
myDF....transformation....
myDF.count() # 1
myDF.count() # 2
}
我理解,在#1
,数据框将实现并应用所有转换。
我的问题是,#2
发生了什么?
转换是否会再次发生,因为垃圾收集器会破坏#1
的结果,或者因为我们仍处于相同的上下文中,#2
会立即返回其结果?
这与Does spark automatically cache some results?不同,因为这更多是关于最佳实践而不是火花缓存。要编写性能最佳的代码,我该怎么办?
谢谢。