Я новенький файлы сборки scala и SBT.Из вводных руководств добавление спарк-зависимостей в проект scala должно быть простым с помощью плагина sbt-spark-package, но я получаю следующую ошибку:
[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))
}
}
plugins.sbt
resolvers += "bintray-spark-packages" at "https://dl.bintray.com/spark-packages/maven/"
addSbtPlugin("org.spark-packages" % "sbt-spark-package" % "0.2.6")
build.sbt - РАБОТАЕТ.Почему библиотекаDependencies запускается / работает?
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"
)
build.sbt - НЕ РАБОТАЕТ.Ожидается, что это скомпилируется и будет работать правильно
spName := "yewno/citation_graph"
version := "0.1"
scalaVersion := "2.11.12"
sparkVersion := "2.2.0"
sparkComponents ++= Seq("core", "sql", "graphx")
Бонус за пояснения + ссылки на ресурсы, чтобы узнать больше о процессе сборки SBT, jar-файлах и обо всем, что может помочь мне ускориться!