wake-up-neo.com

(run-main-0) Java.lang.NoSuchMethodError

Ich habe ein Problem, als ich mit sbt einen Spark-Job ausgeführt habe. Ich habe das Kompilieren fertiggestellt, aber wenn ich den Befehl run ausführte, bekam ich das Problem unten

 [error] (run-main-0) Java.lang.NoSuchMethodError: scala.collection.immutable.HashSet$.empty()Lscala/collection/immutable/HashSet;
Java.lang.NoSuchMethodError: scala.collection.immutable.HashSet$.empty()Lscala/collection/immutable/HashSet;
    at akka.actor.ActorCell$.<init>(ActorCell.scala:305)
    at akka.actor.ActorCell$.<clinit>(ActorCell.scala)
    at akka.actor.RootActorPath.$div(ActorPath.scala:152)
    at akka.actor.LocalActorRefProvider.<init>(ActorRefProvider.scala:465)
    at akka.remote.RemoteActorRefProvider.<init>(RemoteActorRefProvider.scala:124)
    at Sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at Sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.Java:62)
    at Sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.Java:45)
    at Java.lang.reflect.Constructor.newInstance(Constructor.Java:422)
    at akka.actor.ReflectiveDynamicAccess$$anonfun$createInstanceFor$2.apply(DynamicAccess.scala:78)
    at scala.util.Try$.apply(Try.scala:191)

Weiß jemand was soll ich tun?

23
zhang

Ich habe den gleichen Fehler gefunden, als ich das Scala-Library-2.11-Glas verwendet habe. Aber als ich es durch das Scala-Library-2.10-Glas ersetzt habe. Es läuft gut

20
Reddevil

Es wird wahrscheinlich durch die Verwendung inkompatibler Versionen von Scala verursacht. Als ich von Scala 2.11 auf 2.10 heruntergestuft wurde, habe ich vergessen, eine Paketversion zu ändern (ein Paket verwendete also 2.11, der Rest 2.10), was zu demselben Fehler führte.

Hinweis: Dieses Problem hatte ich nur bei der Verwendung von IntelliJ.

8
Guido

Wenn Sie den Fehler erhalten und hier, weil Sie Jupiter-Notebooks mit Spark 2.1 und Scala 2.11 nicht ausführen können, konnte ich es funktionieren lassen. Angenommen, Sie haben Jupiter und toree installiert 

Pre-req - Vergewissern Sie sich, dass Docker ausgeführt wird. Andernfalls schlägt Make fehl. Stellen Sie sicher, dass gpg installiert ist.

Schritte bauen -

export SPARK_HOME=/Users/<path>/spark-2.1.0-hadoop2.7/ 
git clone https://github.com/Apache/incubator-toree.git 
cd incubator-toree 
make clean release Apache_SPARK_VERSION=2.1.0 
pip install --upgrade ./dist/toree-pip/toree-0.2.0.dev1.tar.gz 
pip freeze |grep toree 
jupyter toree install --spark_home=$SPARK_HOME

================================================== ========================

So starten Sie das Notebook - SPARK_OPTS = '- master = lokales [4]' - Notizbuch

7
Rahul J

Ich habe diese Versionen verwendet und jetzt funktioniert alles.

    <dependency>
        <groupId>org.scala-lang</groupId>
        <artifactId>scala-library</artifactId>
        <version>2.11.6</version>
    </dependency>

    <dependency>
        <groupId>com.typesafe.akka</groupId>
        <artifactId>akka-actor_2.11</artifactId>
        <version>2.3.11</version>
    </dependency>
6
P.C.

Prüfen Sie, ob die von Ihnen verwendete Scala-Version der vorkompilierten Spark-Version entspricht.  enter image description here

2
Zhi Zheng

Das Problem konnte mit der Version 2.11.8 reproduziert werden.

Momentan ist kein Downgrade erforderlich . Aktualisieren Sie einfach die scala-library-Version auf 2.12.0 .

1
Andrii Abramov

Ich habe genau das gleiche Problem und habe es behoben, indem ich Scala 2.11.8 auf 2.10.6 heruntergestuft habe.

0
Ben Liao

Ich habe das gleiche Problem, aber wo ändere ich die Version der Scala-Library?

Installation (unter Ubuntu 16.04):

Sudo apt-get install Oracle-Java8-installer
wget http://d3kbcqa49mib13.cloudfront.net/spark-2.0.2-bin-hadoop2.7.tgz && tar xvf spark-2.0.2-bin-hadoop2.7.tgz
pip install toree && jupyter toree install

Wenn ich also mit einem Notebook beginne, wird mir gesagt, dass ich eine andere Scala-Version verwende. Ich habe aber noch nichts installiert . Screenshot + Scala-Version

Mein Spark-Jars-Ordner enthält eine scala-library-2.11.8.jar-Datei. Aber wie kann man torree sagen, diese (oder eine andere) Datei für Scala zu verwenden?.

0
Willem Bressers