eclipse(使用scala envirnment设置):object apache不是包org的成员

时间:2016-04-19 09:55:29

标签: eclipse scala apache-spark

enter image description here

如图所示,在导入Spark包时出现错误。请帮忙。当我在那里悬停时,它显示“对象apache不是包org的成员”。 我搜索了这个错误,它显示还没有导入火花罐。所以,我也导入了“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")
}
}

4 个答案:

答案 0 :(得分:4)

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

答案 1 :(得分:0)

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

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

答案 2 :(得分:-1)

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

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

使用该内核创建笔记本。

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

pyspark

答案 3 :(得分:-1)

我也收到相同的错误,就我而言,这是兼容性问题。由于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的兼容性。