IntelliJ Idea 14:无法解析符号火花

时间:2015-08-28 07:15:13

标签: scala intellij-idea apache-spark sbt

我在第一个项目中使用Spark的依赖。但是当我尝试使用Spark创建一个新项目时,我的SBT不会导入org.apache.spark的外部jar。因此,IntelliJ Idea会给出“无法解析符号”的错误。 我已经尝试从头开始创建一个新项目并使用自动导入但没有工作。当我尝试编译时,我得到“对象apache不是包org的成员”的消息。我的build.sbt看起来像这样:

name := "hello"
version := "1.0"
scalaVersion := "2.11.7"
libraryDependencies += "org.apache.spark" % "spark-parent_2.10" % "1.4.1"

我的印象是我的SBT设置可能有问题,尽管它已经有效了一次。除了外部库,一切都是一样的...... 我还试图导入我的spark依赖的pom.xml文件,但这也不起作用。 提前谢谢!

6 个答案:

答案 0 :(得分:3)

这对我有用 - >

name := "ProjectName"
version := "0.1"
scalaVersion := "2.11.11"

libraryDependencies ++= Seq(
  "org.apache.spark" % "spark-core_2.11" % "2.2.0",
  "org.apache.spark" % "spark-sql_2.11" % "2.2.0",
  "org.apache.spark" % "spark-mllib_2.10" % "1.1.0"
)

答案 1 :(得分:1)

我用

scalaVersion := "2.11.7"

libraryDependencies += "org.apache.spark" %% "spark-core" % "1.4.1"

在我的build.sbt中,它对我有用。

答案 2 :(得分:1)

当前spark-cassandra-connector与Scala 2.10和2.11兼容。

当我更新项目的scala版本时,它对我有用,如下所示:

ThisBuild / scalaVersion := "2.11.12"

我更新了依存关系,如:

libraryDependencies += "com.datastax.spark" %% "spark-cassandra-connector" % "2.4.0",

如果您使用“ %%”,则sbt会将项目的二进制Scala版本添加到工件名称中。

从sbt运行:

sbt> reload
sbt> compile

答案 3 :(得分:0)

您的图书馆依赖与您正在使用的scala版本冲突,您需要使用2.11才能使用它。正确的依赖是:

scalaVersion := "2.11.7"
libraryDependencies += "org.apache.spark" % "spark-core_2.11" % "1.4.1"

请注意,您需要将spark_parent更改为spark_core

答案 4 :(得分:0)

我有类似的问题。似乎原因是build.sbt文件指定了错误的scala版本。

如果你运行spark-shell,它会在某个时候说出Spark使用的scala版本,例如

Using Scala version 2.11.8

然后我编辑了build.sbt文件中的行以指向该版本并且它有效。

答案 5 :(得分:0)

name:=" SparkLearning"

版本:=" 0.1"

scalaVersion:=" 2.12.3"

//其他库 libraryDependencies + =" org.apache.spark" %" spark-streaming_2.10" %" 1.4.1"