Исключение в потоке "main" java.lang.NoSuchMethodError: scala.Predef $ .refArrayOps ([Ljava / lang / Object;) Lscala / collection / mutable / ArrayOps - PullRequest
2 голосов
/ 06 мая 2019

Когда я запускаю в терминале:

sudo spark-submit --master local --class xxx.xxxx.xxx.xxxx.xxxxxxxxxxxxJob --conf 'spark.driver.extraJavaOptions=-Dconfig.resource=xxx.conf' /home/xxxxx/workspace/prueba/pruebas/target/scala-2.11/MiPrueba.jar

Я получаю следующую ошибку:

Exception in thread "main" java.lang.NoSuchMethodError: scala.Predef$.refArrayOps([Ljava/lang/Object;)Lscala/collection/mutable/ArrayOps;
    at pureconfig.DurationUtils$.words(DurationUtils.scala:36)
    at pureconfig.DurationUtils$.pureconfig$DurationUtils$$expandLabels(DurationUtils.scala:38)
    at pureconfig.DurationUtils$$anonfun$2.apply(DurationUtils.scala:53)
    at pureconfig.DurationUtils$$anonfun$2.apply(DurationUtils.scala:53)
    at scala.collection.immutable.List.flatMap(List.scala:338)
    at pureconfig.DurationUtils$.(DurationUtils.scala:53)
    at pureconfig.DurationUtils$.(DurationUtils.scala)
    at pureconfig.DurationReaders$class.$init$(BasicReaders.scala:114)
    at pureconfig.ConfigReader$.(ConfigReader.scala:121)
    at pureconfig.ConfigReader$.(ConfigReader.scala)
    at xxx.xxxx.xxx.xxxx.config.package$Config$.load(package.scala:67)
    at xxx.xxxx.xxx.xxxx.job.xxxxJob$class.main(XXXxxx.scala:23)
    at xxx.xxxx.xxx.xxxx......Job$.main(Xxxxxxxxxxxx.scala:19)
    at xxx.xxxx.xxx.xxxx..main(XXXXXXxxxxxxxx.scala)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.apache.spark.deploy.JavaMainApplication.start(SparkApplication.scala:52)
    at org.apache.spark.deploy.SparkSubmit.org$apache$spark$deploy$SparkSubmit$$runMain(SparkSubmit.scala:849)
    at org.apache.spark.deploy.SparkSubmit.doRunMain$1(SparkSubmit.scala:167)
    at org.apache.spark.deploy.SparkSubmit.submit(SparkSubmit.scala:195)
    at org.apache.spark.deploy.SparkSubmit.doSubmit(SparkSubmit.scala:86)
    at org.apache.spark.deploy.SparkSubmit$$anon$2.doSubmit(SparkSubmit.scala:924)
    at org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:933)
    at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala)

Определения сборки:

версия: = "0.1"

scalaVersion: =" 2.11.11 "

libraryDependencies:

val dependFullList = spark ++ hadoop ++ apisDownload ++ configuration 

конфигурация:

  val configuration = Seq(
    "com.github.pureconfig" %% "pureconfig" % "0.9.2",
    "com.typesafe" % "config" % "1.3.1",
    "org.lz4" % "lz4-java" % "1.4.1"
  )

Spark:

  val spark = Seq(
    "org.apache.spark" %% "spark-core" % Versions.spark % "provided" exclude("javax.jms", "jms"),
    "org.apache.spark" %% "spark-sql" % Versions.spark % "provided",
    "com.databricks" %% "spark-xml" % "0.4.1"
    // https://mvnrepository.com/artifact/mrpowers/spark-daria
  )

Есть идеи?

1 Ответ

2 голосов
/ 07 мая 2019

Вы смешиваете версии Scala. Spark 2.4.2 не поддерживает Scala 2.11. Переключитесь на Spark 2.4.0 или замените свои библиотеки версиями scala 2.12.

https://spark.apache.org/releases/spark-release-2-4-2.html

Обратите внимание, что поддержка Scala 2.11 устарела с версии 2.4.1. Начиная с версии 2.4.2, готовые двоичные файлы скомпилированы для Scala 2.12. Spark по-прежнему кросс-опубликован для 2.11 и 2.12 в Maven Central и может быть построен для 2.11 из источника.

...