我是新的scala和SBT构建文件。从入门教程中可以直接通过sbt-spark-package插件向scala项目添加spark依赖项,但我得到了以下错误:
[error] (run-main-0) java.lang.NoClassDefFoundError: org/apache/spark/SparkContext
请提供资源,以了解更多关于什么可能是驱动错误,因为我想更彻底地理解过程。
代码:
trait SparkSessionWrapper {
lazy val spark: SparkSession = {
SparkSession
.builder()
.master("local")
.appName("spark citation graph")
.getOrCreate()
}
val sc = spark.sparkContext
}
import org.apache.spark.graphx.GraphLoader
object Test extends SparkSessionWrapper {
def main(args: Array[String]) {
println("Testing, testing, testing, testing...")
var filePath = "Desktop/citations.txt"
val citeGraph = GraphLoader.edgeListFile(sc, filepath)
println(citeGraph.vertices.take(1))
}
}
resolvers += "bintray-spark-packages" at "https://dl.bintray.com/spark-packages/maven/"
addSbtPlugin("org.spark-packages" % "sbt-spark-package" % "0.2.6")
spName := "yewno/citation_graph"
version := "0.1"
scalaVersion := "2.11.12"
sparkVersion := "2.2.0"
sparkComponents ++= Seq("core", "sql", "graphx")
libraryDependencies ++= Seq(
"org.apache.spark" %% "spark-core" % "2.2.0",
"org.apache.spark" %% "spark-sql" % "2.2.0",
"org.apache.spark" %% "spark-graphx" % "2.2.0"
)
spName := "yewno/citation_graph"
version := "0.1"
scalaVersion := "2.11.12"
sparkVersion := "2.2.0"
sparkComponents ++= Seq("core", "sql", "graphx")
额外的解释+参考资料链接,以了解更多关于SBT构建过程、jar文件和任何其他可以帮助我跟上速度的东西!
sbt-spark-package插件在provided
作用域中提供依赖项:
sparkComponentSet.map { component =>
"org.apache.spark" %% s"spark-$component" % sparkVersion.value % "provided"
}.toSeq
我们可以通过从SBT运行show librarydependencies
来确认这一点:
[info] * org.scala-lang:scala-library:2.11.12
[info] * org.apache.spark:spark-core:2.2.0:provided
[info] * org.apache.spark:spark-sql:2.2.0:provided
[info] * org.apache.spark:spark-graphx:2.2.0:provided
提供的
作用域表示:
run in Compile := Defaults.runTask(fullClasspath in Compile, mainClass in (Compile, run), runner in (Compile, run)).evaluated
我试图构建一个具有spark依赖关系的非常基本的scala脚本。但我不能用它做罐子。 我的scala源代码在: /exampleapp/main/scala/example/hello.scala 项目名为exampleapp。
在为一个小型Spark Scala应用程序从命令行运行“sbt包”时,我在以下代码行中得到“value$is not a member of StringContext”编译错误: Intellij 13.1给了我同样的错误消息。相同的。scala源代码在Eclipse 4.4.2中编译时没有任何问题。此外,它在命令行的一个单独的maven项目中与maven配合良好。 sbt似乎无法识别$符号,因
我有一个sbt插件项目,使用多项目构建。我想使用这个插件作为其他sbt项目的依赖项。我已经创建了一个插件,但是当我把这个插件添加到project中时,我似乎不能正确地连接依赖项。 我在这里漏掉了什么?
我已经克隆了sbteclipse,我正在阅读scala-sbt教程,上面说: 我在/home/mil目录中,而sbteclipse在同一个目录中。sbteclipse内部是带有plugins.sbt的项目目录
我需要一些关于这些的帮助,我克隆了这个存储库https://github.com/oermolaev/simple-scala-rest-example,但是当我运行sbt时,我得到了这样的错误:有趣的是,我无法运行,也许有些存储库已经过时了...如果你能帮助我,我将非常高兴 解析器++=Seq(“Sonatype Snapshots”(“http://oss.sonatype.org/conte
我有一个Play应用程序,当我运行时,我得到一个错误,如下所示: 但实际上,这个插件的路径是而不是失败的试用。 project/plugin.sbt如下所示: 请指教。