【问题标题】:eclipse(set with scala envirnment) : object apache is not a member of package orgeclipse(使用 scala 环境设置):对象 apache 不是包 org 的成员
【发布时间】:2019-07-01 05:45:02
【问题描述】:

如图所示,当我导入 Spark 包时出现错误。请帮忙。当我悬停在那里时,它显示“对象 apache 不是包 org 的成员”。 我搜索了这个错误,它显示 spark jars 没有被导入。所以,我也导入了“spark-assembly-1.4.1-hadoop2.2.0.jar”。但仍然是同样的错误。下面是我真正想要运行的:

 import org.apache.spark.{SparkConf, SparkContext}
 object ABC {

 def main(args: Array[String]){
//Scala Main Method

println("Spark Configuration")

val conf = new SparkConf()

conf.setAppName("My First Spark Scala Application")

conf.setMaster("spark://ip-10-237-224-94:7077")

println("Creating Spark Context")
}
}

【问题讨论】:

  • 你在类路径中添加了 spark-core jar 吗?
  • 实际上我不知道要添加哪些所有 jar 以及它们在哪个位置启动,我可以从哪里复制。你能指导一下吗?
  • 您只需按照spark.apache.org/docs/1.2.0/quick-start.html中的说明进行操作
  • 添加 spak-core 后,做 Maven -> update Project,你就可以开始了。

标签: eclipse scala apache-spark


【解决方案1】:

在您的类路径中添加spark-core jar 应该可以解决您的问题。此外,如果您正在使用一些构建工具,例如 MavenGradle(如果没有,那么您应该因为 spark-core 有很多依赖项,并且您会不断遇到不同 jar 的此类问题),请尝试使用这些提供的 Eclipse 任务在项目中正确设置类路径的工具。

【讨论】:

  • 这是你指的jar -> "/root/.m2/repository/org/apache/spark/spark-core_2.10/1.4.1/spark-core_2.10-1.4 .1.jar”?请帮忙
  • 是的,就是那个罐子。
【解决方案2】:

我也收到了同样的错误,在我的情况下是兼容性问题。由于 Spark 2.2.1 与 Scala 2.12 不兼容(它与 2.11.8 兼容)并且我的 IDE 支持 Scala 2.12.3。 我通过

解决了我的错误

1) 从 Spark 的基本文件夹中导入 jar 文件。在我们的 C 盘中安装 Spark 期间,我们有一个名为 Spark 的文件夹,其中包含 Jars 文件夹。在这个文件夹中可以获取所有基本的 jar 文件。 转到 Eclipse 右键单击​​项目-> 属性-> Java 构建路径。在“库”类别下,我们将获得添加外部 JAR 的选项。选择此选项并导入“jars 文件夹”的所有 jar 文件。点击应用。

2) 再次转到属性 -> Scala 编译器 -> Scala 安装 -> 最新 2.11 捆绑包(动态)* *在选择此选项之前,应检查 SPARK 和 SCALA 的兼容性。

【讨论】:

    【解决方案3】:

    问题是 Scala 不向后兼容。因此,每个 Spark 模块都针对特定的 Scala 库进行编译。但是当我们从 Eclipse 运行时,我们有一个 SCALA VERSION 用于编译和创建我们添加到构建路径的 spark Dependency Jar,而 SECOND SCALA VERSION 作为 eclipse 运行时环境存在。 两者可能会发生冲突

    这是一个艰难的现实,尽管我们希望 Scala 能够向后兼容。或者至少创建的已编译 jar 文件可以向后兼容。 因此,建议使用 Maven 或类似的可以管理依赖版本的地方。

    【讨论】:

      【解决方案4】:

      如果您在 Jupyter Notebook 中的 Scala 上下文中执行此操作,您将收到此错误。您必须安装 Apache Toree 内核:

      https://github.com/apache/incubator-toree

      并使用该内核创建您的笔记本。

      您还必须使用以下命令启动 Jupyter Notebook:

      pyspark
      

      【讨论】:

      • 似乎这个问题是针对其他问题的
      猜你喜欢
      • 1970-01-01
      • 2016-02-09
      • 1970-01-01
      • 2019-09-24
      • 1970-01-01
      • 2012-12-20
      • 2016-02-29
      • 2019-11-22
      • 1970-01-01
      相关资源
      最近更新 更多