Я имею ошибку при попытке запустить простой код Scala в Спарк, похожий на эти посты: this и thisNoSuchMethodError для Scala Seq линии в Спарк
Их проблема заключалась в том, что они использовали неправильную версию Scala компилировать их Искры проекта. Тем не менее, моя - правильная версия.
У меня есть Spark 1.6.0, установленный на кластере AWS EMR для запуска программы. Проект скомпилирован на моей локальной машине с установленным Scala 2.11 и 2.11 указан во всех зависимостях и строит файлы без ссылок на 2.10.
Это точная линия, которая бросает ошибку:
var fieldsSeq: Seq[StructField] = Seq()
И это точная ошибка:
Exception in thread "main" java.lang.NoSuchMethodError: scala.runtime.ObjectRef.create(Ljava/lang/Object;)Lscala/runtime/ObjectRef;
at com.myproject.MyJob$.main(MyJob.scala:39)
at com.myproject.MyJob.main(MyJob.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:497)
at org.apache.spark.deploy.SparkSubmit$.org$apache$spark$deploy$SparkSubmit$$runMain(SparkSubmit.scala:731)
at org.apache.spark.deploy.SparkSubmit$.doRunMain$1(SparkSubmit.scala:181)
at org.apache.spark.deploy.SparkSubmit$.submit(SparkSubmit.scala:206)
at org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:121)
at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala)
Не могли бы вы показать пример? –
Spark 1.6 основан на Scala 2.10 не 2.11. Вы скомпилировали Spark специально для 2.11? Принятый ответ для вашей второй ссылки - это проблема - бинарный скомпилированный для 2.11, запущенный на Spark (который равен 2.10). –
Я просто посмотрел, что на сайте Spark, и вы правы - Spark 1.6 по-прежнему базируется на 2.10. Сотрудник сказал мне, что 1,6 увеличил версию Scala до 2,11, так что я использовал последние пару недель. Мои другие работы Spark отлично работали. – mcmcmc