Ошибка Pyspark - Неподдерживаемая основная версия файла класса 55 - PullRequest
0 голосов
/ 02 декабря 2018

ИСПРАВЛЕНИЕ:

Чтобы исправить эту проблему, я отредактировал bash_profile, чтобы обеспечить использование java 1.8 в качестве глобального значения по умолчанию следующим образом:

touch ~/.bash_profile; open ~/.bash_profile

Добавление

export JAVA_HOME=$(/usr/libexec/java_home -v 1.8) 

и сохранение в текстовом редакторе.

ВОПРОС:

Я пытаюсь установить Spark на мой Mac.Я использовал home-brew для установки spark 2.4.0 и Scala.Я установил PySpark в своей среде анаконды и использую PyCharm для разработки.Я экспортировал в свой профиль 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

Однако я не могу заставить его работать.

Я подозреваю, что это связано с чтением трассировки в Java-версии.Я был бы очень признателен за помощь в устранении проблемы.Пожалуйста, прокомментируйте, если есть какая-либо информация, которую я мог бы предоставить, которая может быть полезна за пределами трассировки.

Я получаю следующую ошибку:

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

Ответы [ 5 ]

0 голосов
/ 25 июля 2019

С pycharm я обнаружил, что добавить место искры через findspark и java8 с os в начале скрипта проще всегорешение:

import findspark
import os
spark_location='/opt/spark-2.4.3/' # Set your own
java8_location= '/usr/lib/jvm/java-8-openjdk-amd64' # Set your own
os.environ['JAVA_HOME'] = java8_location
findspark.init(spark_home=spark_location) 
0 голосов
/ 11 мая 2019

Я столкнулся с этой проблемой при запуске Jupyter Notebook и Spark с использованием Java 11. Я установил и настроил для Java 8 следующие шаги:

Установите Java 8:

$ sudo apt install openjdk-8-jdk

ПосколькуЯ уже установил Java 11, затем я установил Java по умолчанию на версию 8, используя:

$ sudo update-alternatives --config java

Выберите Java 8 и подтвердите изменения:

$ java -version

Вывод должен быть похож на:

openjdk version "1.8.0_191"
OpenJDK Runtime Environment (build 1.8.0_191-8u191-b12-2ubuntu0.18.04.1-b12)
OpenJDK 64-Bit Server VM (build 25.191-b12, mixed mode)

Теперь я могу успешно запустить Spark в Jupyter Notebook.Приведенные выше шаги основаны на следующем руководстве: https://www.digitalocean.com/community/tutorials/how-to-install-java-with-apt-on-ubuntu-18-04

0 голосов
/ 26 декабря 2018

У меня такая же проблема в Windows, и я добавил JAVA_HOME в путь к переменной среды:

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

0 голосов
/ 15 февраля 2019

В Windows (Windows 10) вы можете решить эту проблему, установив jdk-8u201-windows-x64.exe и сбросив системную переменную среды на правильную версию JAVA JDK:

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

Не забудьте перезапустить терминал, иначе сброс переменной среды не наступит.

0 голосов
/ 02 декабря 2018

Пока Spark не скомпилирован для поддержки Java 11, вам нужно добавить

export JAVA_HOME=$(/usr/libexec/java_home -v 1.8)

Или найти spark-env.sh и сделать это там

Сначала вам нужно будет brew cask install java8

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...