2
我運行火花2 - 與階2.11.8殼和想知道關於以下行爲,其中每行是在外殼被執行的代碼塊:火花殼不重寫方法定義
def myMethod() = "first definition"
val tmp = myMethod(); val out = tmp
println(out) // prints "first definition"
def myMethod() = "second definition" // override above myMethod
val tmp = myMethod(); val out = tmp
println(out) // should be "second definition" but is "first definition"
因此,如果我重新定義myMethod
,在這種情況下似乎不會更新實現。我發現倒數第二條語句(val out = tmp
)會導致這種行爲,如果這是在一個單獨的塊中移動的,代碼就可以正常工作。
所以我的問題:這是所需的行爲或錯誤?
這似乎是對我來說(特別是如果分割VAL TMP-myMethod的一個bug (); val out = tmp到兩行,它會得到第二個定義)。我會建議提交一個bug –
@AssafMendelson我剛剛創建了一個jiira:https://issues.apache.org/jira/browse/SPARK-20706 –