【发布时间】:2019-12-04 00:48:10
【问题描述】:
目前我正在编译我的 JAR 文件,但由于出现标题中的错误,我无法运行 JAR。我正在使用sbt assembly 进行编译,以便包含所有依赖项。
Scala 2.11.12 Spark 2.4.2
package com.foo.bar
import org.apache.spark.sql.SparkSession
import org.apache.spark.SparkContext
import org.apache.spark.SparkConf
import Array._
object DebugApp extends App {
override def main(args: Array[String]) {
if (args.length == 0) {
println("Must pass in args: sparkMaster, dataPath")
}
val sparkMaster = args(0)
val bucket = args(1)
val dataPath = args(2)
val parsedDestionationPath = args(3)
val rawDestionationPath = args(4)
val spark = SparkSession
.builder()
.config("spark.driver.extraJavaOptions", "-Dlog4jspark.root.logger=WARN,console")
.appName("Parser")
.master(sparkMaster)
.getOrCreate()
}
}
错误的前 2 行表明这是来自 Spark:
线程“main”中的异常 java.lang.NoSuchMethodError: scala.collection.mutable.Buffer$.empty()Lscala/collection/GenTraversable; 在 org.apache.spark.sql.SparkSessionExtensions.(SparkSessionExtensions.scala:72)
进一步的上下文是我在 build.sbt 中使用的依赖项:
scalaVersion in ThisBuild := "2.11.12"
fork in run := true
...
val sparkV = "2.4.2"
val spark = "org.apache.spark" %% "spark-core" % sparkV
val sparkSql = "org.apache.spark" %% "spark-sql" % sparkV
val sparkHive = "org.apache.spark" %% "spark-hive" % sparkV
【问题讨论】:
-
这个问题看起来像不兼容的 Scala 库版本,但您显示的依赖项不应该产生它。您是否还有其他依赖项,尤其是没有
%%?
标签: java scala apache-spark apache-spark-sql