我是 scala 和 sbt 的新手,所以我不确定为什么会出现错误。
以下是我的构建.sbt
name := "graphx-example"
version := "1.0"
scalaVersion := "2.11.8"
libraryDependencies ++= Seq(
"com.typesafe" % "config" % "1.3.1",
"org.scalatest" % "scalatest_2.11" % "3.0.4" % "test",
"org.apache.spark" % "spark-core_2.11" % "2.2.0",
"org.apache.spark" % "spark-sql_2.11" % "2.2.0" % "provided",
"org.apache.spark" % "spark-graphx_2.11" % "1.2.1" % "provided"
)
但是我收到以下错误:
[error] (run-main-0) java.lang.NoClassDefFoundError: org/apache/spark/sql/SQLContext
java.lang.NoClassDefFoundError: org/apache/spark/sql/SQLContext
at java.lang.Class.getDeclaredMethods0(Native Method)
at java.lang.Class.privateGetDeclaredMethods(Class.java:2701)
at java.lang.Class.privateGetMethodRecursive(Class.java:3048)
at java.lang.Class.getMethod0(Class.java:3018)
at java.lang.Class.getMethod(Class.java:1784)
Caused by: java.lang.ClassNotFoundException: org.apache.spark.sql.SQLContext
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at java.lang.Class.getDeclaredMethods0(Native Method)
at java.lang.Class.privateGetDeclaredMethods(Class.java:2701)
at java.lang.Class.privateGetMethodRecursive(Class.java:3048)
at java.lang.Class.getMethod0(Class.java:3018)
这是
版本不匹配。您使用:
- 火花 2.2
- 图X 1.2.
所有 Spark 组件都应具有相同的主要版本。
此外,你的provided
似乎不对。通常,您应该提供所有 Spark 库,或者没有。