[英]How is an imported name resolved in Scala? (Spark / Zeppelin)
我在Zeppelin中使用Spark解释器在段落中运行了一个脚本。 它有一个导入,导入的名称可以从全局命名空间和函数中解析,但不能从类中的方法解析。
这在我的计算机安装Scala(2.12)上运行良好,但它在Zeppelin(Scala 2.11)中不起作用。
import java.util.Calendar
def myFun: String = {
// this works
return Calendar.getInstance.toString
}
class MyClass {
def myFun(): String = {
// this doesn't
return Calendar.getInstance.toString
// this works
return java.util.Calendar.getInstance.toString
}
}
错误消息如下:
import java.util.Calendar
myFun: String
<console>:15: error: not found: value Calendar
return Calendar.getInstance.toString
我错过了什么?
在0.8.0中,Zeppelin引入了一个新的SparkInterpreter,我认为全局导入不起作用,导入必须在包装器中作用。
作为解决方法,可以将属性zeppelin.spark.useNew设置为值“false”。 这会禁用sparks new interpreter。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.