我想在Java中开始使用Apache Spark。所以我开始关注this tutorial。在本教程中,他们展示了一个用Eclipse IDE编写的简单桌面应用程序,并使用Eclipse的Gradle插件进行编译和运行。
我遵循了本教程,一切都很完美。这是他们的 build.gradle
文件:
apply plugin: 'java-library'
repositories {
jcenter()
}
dependencies {
compileOnly 'org.apache.spark:spark-core_2.11:2.1.0'
testImplementation 'org.apache.spark:spark-core_2.11:2.1.0','junit:junit:4.12'
}
到目前为止一切顺利!但现在我真正的需要是能够在离线系统中编译和运行Spark应用程序。所以我做的是搜索 org.apache.spark:spark-core_2.11:2.1.0
和 {在jcenter
中{1}} 并下载了所有junit:junit:4.12
个文件,然后在项目根目录中创建了一个名为.jar
的文件夹,然后添加了所有libs
个文件按照this method跟踪我项目的构建路径。
我修改了 .jar
文件,如下所示:
build.gradle
编译此修改后的应用程序时,我在控制台中收到以下错误。问题是我做错了什么?如何摆脱这个问题?
apply plugin: 'java'
apply plugin: 'application'
//apply plugin: 'java-library'
repositories {
jcenter()
}
dependencies {
compile fileTree(dir: 'libs', include: '*.jar')
}
答案 0 :(得分:0)
SparkConf实现了scala.Cloneable和scala.Serializable接口,这两个接口都不是org.apache.spark:spark-core的一部分,而是org.apache.spark:scala-library。如果你将这个jar添加到你的项目中,就像你对核心jar一样,这两个错误就会消失。