IntelliJ:scalac错误的符号引用

时间:2015-09-16 06:24:34

标签: scala maven intellij-idea apache-spark sbt

在我的build.sbt文件中,我在我的项目中有这个。

scalaVersion := "2.10.4"

libraryDependencies += "org.apache.spark" %% "spark-core" % "1.3.1"
libraryDependencies += "org.apache.spark" % "spark-hive_2.10" % "1.3.1"
libraryDependencies += "org.apache.spark" % "spark-graphx_2.10" % "1.3.1"   
libraryDependencies += "org.apache.spark" % "spark-mllib_2.10" % "1.3.1"

我只是让它自动下载所有库。我将graphx,spark-core和scala sdk添加到我的一个项目模块中,但是当我尝试编译时,我得到了:

  

错误:scalac:错误的符号引用。 RDD.class中的签名是指术语hadoop   在包org.apache中,这是不可用的。   它可能完全从当前类路径或版本中丢失   类路径可能与编译RDD.class时使用的版本不兼容。

     

错误:scalac:错误的符号引用。 RDD.class中的签名是指术语io   在值org.apache.hadoop中,它不可用。   它可能完全从当前类路径或版本中丢失   类路径可能与编译RDD.class时使用的版本不兼容。

     

错误:scalac:错误的符号引用。 RDD.class中的签名是指术语压缩   在值org.apache.io中,这是不可用的。   它可能完全从当前类路径或版本中丢失   类路径可能与编译RDD.class时使用的版本不兼容。

奇怪的是,如果我直接从maven存储库下载graphx / mllib,它似乎是编译的。有什么想法吗?

2 个答案:

答案 0 :(得分:1)

另一个可能的错误来源是项目中的scalac版本设置不正确。右键单击项目 - >打开模块设置 - >全局库,更改/添加适合您项目的scala-sdk版本

答案 1 :(得分:0)

请添加hadoop依赖项。像

这样的东西
libraryDependencies += "org.apache.hadoop" %% "hadoop-common" % "2.7.1"
libraryDependencies += "org.apache.hadoop" %% "hadoop-hdfs" % "2.7.1"

您可能需要根据应用添加其他hadoop模块。