Même si j'utilisais spark de spark-shell ou exécutais pyspark, j'ai eu la même erreur que ci-dessous, donc je l'ai corrigée.
'Unsupported class file major version 55'
Ubuntu18.04 Spark 2.4.3
La cause semble être l'utilisation de Java 11. Vérifiez la version de Java que vous utilisez et procédez comme suit pour choisir une autre version:
$ sudo update-alternatives --config java
alternative java (/usr/bin/Fournir java)A trois choix.
Statut de priorité du chemin de choix
------------------------------------------------------------
0 /usr/lib/jvm/java-11-openjdk-amd64/bin/java 1101 mode automatique
1 /usr/lib/jvm/java-11-openjdk-amd64/bin/java 1101 mode manuel
* 2 /usr/lib/jvm/java-11-oracle/bin/java 1091 mode manuel
3 /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java 1081 mode manuel
Choix actuel[*]Tenir<Enter>, Sinon appuyez sur la touche du numéro de choix:3
Je me demandais si je pouvais utiliser Java 8 avec cela, mais cela ne s'est pas produit comme indiqué ci-dessous.
$ java --version
openjdk 11.0.2 2019-01-15
OpenJDK Runtime Environment 18.9 (build 11.0.2+9)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.2+9, mixed mode)
Découvrons où nous allons voir en premier lieu. Puis
$ which java
/home/ksn/.sdkman/candidates/java/current/bin/java
Il est prouvé que Java (et Kotlin) a été installé à l'aide de SDKMAN.
À ce stade, j'ai appris que SDKMAN pouvait installer Spark, j'ai donc décidé de l'essayer.
$ sdk install spark
Je l'ai installé avec et j'ai essayé de vérifier l'opération à partir de $ spark-session
, mais j'obtiens toujours la même erreur comme
Fichier de classe non pris en charge version majeure 55 ''.
$ sdk list java
Lorsque j'ai examiné si Java 8 pouvait être installé avec SDKMAN, il s'est avéré que Java 8 ou moins ne pouvait pas être installé. Dans ce cas, j'ai décidé qu'il était impossible de le résoudre ici.
Par conséquent, désinstallez Java qui a été mis dans SDKMAN ci-dessous.
$ sdk uninstall java 11.0.2-open
avec ça,
$ java -version
openjdk version "1.8.0_212"
OpenJDK Runtime Environment (build 1.8.0_212-8u212-b03-0ubuntu1.18.04.1-b03)
OpenJDK 64-Bit Server VM (build 25.212-b03, mixed mode)
$ which java
/usr/bin/java
Ensuite, il lira java sous / usr / bin /
.
Essayez de lancer spark installé avec SDKMAN en tant que $ spark-shell
. Puis
$ spark-shell
...
scala> val textFile = spark.read.text("README.md")
textFile: org.apache.spark.sql.DataFrame = [value: string]
scala> textFile.count()
res0: Long = 109
Et l'erreur a disparu en toute sécurité.
Pour autant que je sache, il est trop tôt pour utiliser Java 11 avec Spark et Hadoop, et si vous souhaitez utiliser Java 11, attendez-vous à Spark 3.x. Cela semble résoudre le problème lors de l'introduction de Hadoop l'autre jour.
Recommended Posts