it-roy-ru.com

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

ИСПРАВИТЬ:

Чтобы исправить эту проблему, я отредактировал 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 для установки свечей 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
3
avocet

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

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

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

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

4
cricket_007

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

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

1
Chaymae Ahmed

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

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

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

0
tomasvanoyen