繁体   English   中英

如何在Scala中解析导入的名称? (Spark / Zeppelin)

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM