web-dev-qa-db-fra.com

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

J'ai eu un problème quand j'ai utilisé sbt pour exécuter un travail d'étincelle, j'ai fini de compiler, mais lorsque j'ai exécuté la commande run, j'ai eu le problème ci-dessous

 [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)

Quelqu'un sait ce que je devrais faire?

23
zhang

J'ai rencontré la même erreur quand j'ai utilisé scala-library-2.11 jar mais quand je l'ai remplacé par scala-library-2.10 jar Ça marche bien

20
Reddevil

Cela est probablement dû à l’utilisation de versions incompatibles de Scala. Lorsque j'ai rétrogradé de Scala 2.11 à 2.10, j'ai oublié de modifier une version de package (donc un package utilisé 2.11, le reste 2.10), ce qui entraîne la même erreur.

Remarque: ce problème ne concernait que l'utilisation d'IntelliJ.

8
Guido

Si vous obtenez l'erreur et que vous ne pouvez pas exécuter les blocs-notes Jupiter avec Spark 2.1 et Scala 2.11 ci-dessous, voici comment j'ai pu la faire fonctionner. Suppose que vous avez installé Jupiter et Toree 

Pre-req - Assurez-vous que Docker est en cours d’exécution, mais que Make échoue. Assurez-vous que gpg est installé sinon Make échoue.

Étapes de construction -

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

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

Pour démarrer le bloc-notes - SPARK_OPTS = '- maître = local [4]' cahier jupyter

7
Rahul J

J'ai utilisé ces versions et tout fonctionne maintenant.

    <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.

Vérifiez si la version de scala que vous utilisez correspond à la version d'allumage précompilée .  enter image description here

2
Zhi Zheng

Le problème pourrait être reproduit avec la version 2.11.8.

Pour le moment, aucune mise à niveau n'est nécessaire . Il suffit de mettre à jour la version scala-library vers 2.12.0 .

1
Andrii Abramov

J'ai exactement le même problème et je l'ai résolu en rétrogradant scala 2.11.8 à 2.10.6.

0
Ben Liao

J'ai le même problème mais où puis-je modifier la version de scala-library?

Installation (sur 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

Donc, quand je commence avec un cahier, cela me dit que j'utilise une version différente de Scala. Mais je n'ai rien installé d'autre . capture d'écran + version scala

Mon dossier Jar Spark contient un fichier scala-library-2.11.8.jar. Mais comment dire à torree d'utiliser ce fichier (ou un autre) pour scala.

0
Willem Bressers