Java Apache Spark找不到类
我正在尝试使用Java Apache Spark找不到类,java,scala,apache-spark,intellij-idea,Java,Scala,Apache Spark,Intellij Idea,我正在尝试使用apachespark和scala-sbt 我一次又一次地犯这个错误 线程“main”java.lang.NoClassDefFoundError中出现异常:org/apache/spark/SparkConf 在AuctionsApp$.main处(AuctionsApp.scala:5) 下面是代码片段 import org.apache.spark.SparkConf object AuctionsApp { def main(args: Array[String]):
apachespark
和scala-sbt
我一次又一次地犯这个错误
线程“main”java.lang.NoClassDefFoundError中出现异常:org/apache/spark/SparkConf
在AuctionsApp$.main处(AuctionsApp.scala:5)
下面是代码片段
import org.apache.spark.SparkConf
object AuctionsApp {
def main(args: Array[String]): Unit = {
val conf = new SparkConf().setAppName("AuctionsApp")
println(conf)
}
}
build.sbt
文件
name := "AuctionsApp"
version := "1.0"
scalaVersion := "2.10.5"
libraryDependencies += "org.apache.spark" % "spark-core_2.10" % "1.2.0-cdh5.3.2" % "provided"
resolvers += "Cloudera Repository" at "https://repository.cloudera.com/artifactory/cloudera-repos/"
我可以通过按command并单击import
语句中的类名导航到SparkConf
文件,这意味着它与其他代码一起驻留在那里
项目建设也很成功
感谢您的帮助
注:使用
IntelliJ Idea CE
version2016.3
请注意,在SBT中,您指定了提供的,这意味着在应用程序启动时,包含类的JAR假定存在于类路径上,而在本地调试时则不是这样
为了解决这个问题,我们创建了一个额外的项目,专门用于在本地调试Spark。首先,我们在项目定义之外声明对Spark的依赖关系:
lazy val sparkDeps = Seq(
"org.apache.spark" %% "spark-core" % "1.2.0-cdh5.3.2"
)
然后,我们创建新项目,该项目依赖于我们的主项目和map
over Sparks dependencies,并将compile
注释添加到模块中:
lazy val sparkProject =
project in file("spark-project")
.settings(
// Add your settings and such
)
lazy val sparkDebugger = project in file("spark-debugger")
.dependsOn(sparkProject)
.settings(
libraryDependencies ++= sparkDeps.map(_ % "compile")
)
当我们想在本地调试Spark时,我们会从调试配置窗口中的sparkDebugger
项目加载我们的主要方法: