Spark-shell 没有覆盖方法定义
Spark-shell not overriding method definition
我是 运行 Spark 2 - shell with scala 2.11.8 并且想知道以下行为,其中每一行都是要在 shell:
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
) 导致了这种行为,如果将其移到单独的块中,代码就可以正常工作。
所以我的问题是:这是期望的行为还是错误?
这确实是一个 Spark-Shell 错误(或更多是 Scala REPL 错误),将在 Spark 2.3 中解决:https://issues.apache.org/jira/browse/SPARK-20706
我是 运行 Spark 2 - shell with scala 2.11.8 并且想知道以下行为,其中每一行都是要在 shell:
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
) 导致了这种行为,如果将其移到单独的块中,代码就可以正常工作。
所以我的问题是:这是期望的行为还是错误?
这确实是一个 Spark-Shell 错误(或更多是 Scala REPL 错误),将在 Spark 2.3 中解决:https://issues.apache.org/jira/browse/SPARK-20706