在我的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,它似乎是编译的。有什么想法吗?
答案 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模块。