Ian*_*ell 4 eclipse scala apache-spark
我有一些主要的object:
import org.apache.spark.SparkConf
import org.apache.spark.SparkContext
import org.apache.spark.SparkContext._
object Main {
def main(args: Array[String]) {
val sc = new SparkContext(
new SparkConf().setMaster("local").setAppName("FakeProjectName")
)
}
}
Run Code Online (Sandbox Code Playgroud)
...然后我添加spark-assembly-1.3.0-hadoop2.4.0.jar从到构建路径在Eclipse
Project> Properties...> Java Build Path:
...并且此警告出现在Eclipse控制台中:
More than one scala library found in the build path
(C:/Program Files/Eclipse/Indigo 3.7.2/configuration/org.eclipse.osgi/bundles/246/1/.cp/lib/scala-library.jar,
C:/spark/lib/spark-assembly-1.3.0-hadoop2.4.0.jar).
This is not an optimal configuration, try to limit to one Scala library in the build path.
FakeProjectName Unknown Scala Classpath Problem
Run Code Online (Sandbox Code Playgroud)
然后,我Scala Library [2.10.2]从构建路径中删除,它仍然有效。除了现在,此警告出现在Eclipse控制台中:
The version of scala library found in the build path is different from the one provided by scala IDE:
2.10.4. Expected: 2.10.2. Make sure you know what you are doing.
FakeProjectName Unknown Scala Classpath Problem
Run Code Online (Sandbox Code Playgroud)
这不是问题吗?无论哪种方式,我该如何解决?
小智 5
这通常是没有问题的,尤其是当版本差异很小时,但是不能保证...
问题是(如警告中所述)您的项目在类路径上有两个Scala库。其中一个明确配置为项目的一部分;这是版本2.10.2,并随Scala IDE插件一起提供。另一个副本的版本为2.10.4,包含在Spark jar中。
解决此问题的一种方法是安装2.10.4附带的不同版本的Scala IDE。但这并不理想。如此处所述,Scala IDE要求每个项目都使用相同的库版本:
更好的解决方案是通过替换正在使用的Spark jar来清理类路径。您拥有的是一个组装jar,这意味着它包括产生它的构建中使用的每个依赖项。如果使用的是sbt或Maven,则可以删除程序集jar,只需将Spark 1.3.0和Hadoop 2.4.0添加为项目的依赖项。在构建过程中将拉入所有其他依赖项。如果您尚未使用sbt或Maven,那么也许可以尝试一下sbt-设置带有几个库依赖项的build.sbt文件确实很容易,并且sbt在一定程度上支持指定要使用的库版本使用。
| 归档时间: |
|
| 查看次数: |
8532 次 |
| 最近记录: |