web-dev-qa-db-fra.com

Erreur Pyspark - Fichier de classe non pris en charge version majeure 55

RÉPARER:

Pour résoudre ce problème, j'ai modifié bash_profile afin de m'assurer que Java 1.8 est utilisé comme valeur par défaut globale, comme suit:

touch ~/.bash_profile; open ~/.bash_profile

Ajouter 

export Java_HOME=$(/usr/libexec/Java_home -v 1.8) 

et enregistrer dans l'édition de texte.

QUESTION:

J'essaie d'installer Spark sur mon Mac. J'ai utilisé home-brew pour installer spark 2.4.0 et Scala. J'ai installé PySpark dans mon environnement anaconda et j'utilise PyCharm pour le développement. J'ai exporté vers mon profil bash:

export SPARK_VERSION=`ls /usr/local/Cellar/Apache-spark/ | sort | tail -1`
export SPARK_HOME="/usr/local/Cellar/Apache-spark/$SPARK_VERSION/libexec"
export PYTHONPATH=$SPARK_HOME/python/:$PYTHONPATH
export PYTHONPATH=$SPARK_HOME/python/lib/py4j-0.9-src.Zip:$PYTHONPATH

Cependant, je suis incapable de le faire fonctionner. 

Je soupçonne que cela est dû à la version Java de la lecture de traceback. J'apprécierais vraiment de l'aide pour résoudre le problème. Veuillez commenter si je peux fournir des informations utiles au-delà du traçage.

Je reçois l'erreur suivante: 

Traceback (most recent call last):
  File "<input>", line 4, in <module>
  File "/anaconda3/envs/coda/lib/python3.6/site-packages/pyspark/rdd.py", line 816, in collect
    sock_info = self.ctx._jvm.PythonRDD.collectAndServe(self._jrdd.rdd())
  File "/anaconda3/envs/coda/lib/python3.6/site-packages/py4j/Java_gateway.py", line 1257, in __call__
    answer, self.gateway_client, self.target_id, self.name)
  File "/anaconda3/envs/coda/lib/python3.6/site-packages/py4j/protocol.py", line 328, in get_return_value
    format(target_id, ".", name), value)
py4j.protocol.Py4JJavaError: An error occurred while calling z:org.Apache.spark.api.python.PythonRDD.collectAndServe.
: Java.lang.IllegalArgumentException: Unsupported class file major version 55
3
avocet

Jusqu'à ce que Spark soit compilé pour prendre en charge Java 11, vous devez ajouter 

export Java_HOME=$(/usr/libexec/Java_home -v 1.8)

Ou trouvez le spark-env.sh et faites le ici

Vous devrez d'abord brew cask install Java8 

4
cricket_007

J'ai le même problème dans Windows et j'ai ajouté Java_HOME au chemin de la variable d'environnement:

Java_HOME: C:\Program Files\Java\jdk-11.0.1 

1
Chaymae Ahmed

Sous Windows (Windows 10), vous pouvez résoudre le problème en installant jdk-8u201-windows-x64.exe et en réinitialisant la variable d'environnement système sur la version correcte du JDK Java:

Java_HOME -> C:\Program Files\Java\jdk1.8.0_201. 

N'oubliez pas de redémarrer le terminal, sinon la réinitialisation de la variable d'environnement n'interviendra pas. 

0
tomasvanoyen