Ошибка pyspark отсутствует в ошибке jvm при инициализации SparkContext - PullRequest
0 голосов
/ 05 ноября 2018

Я использую spark over emr и пишу скрипт pyspark, Я получаю сообщение об ошибке при попытке

from pyspark import SparkContext
sc = SparkContext()

это ошибка

File "pyex.py", line 5, in <module>
    sc = SparkContext()   File "/usr/local/lib/python3.4/site-packages/pyspark/context.py", line 118, in __init__
    conf, jsc, profiler_cls)   File "/usr/local/lib/python3.4/site-packages/pyspark/context.py", line 195, in _do_init
    self._encryption_enabled = self._jvm.PythonUtils.getEncryptionEnabled(self._jsc)   File "/usr/local/lib/python3.4/site-packages/py4j/java_gateway.py", line 1487, in __getattr__
    "{0}.{1} does not exist in the JVM".format(self._fqn, name)) py4j.protocol.Py4JError: org.apache.spark.api.python.PythonUtils.getEncryptionEnabled does not exist in the JVM

Я нашел этот ответ о том, что мне нужно импортировать sparkcontext, но это также не работает.

Ответы [ 7 ]

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

Попробуйте добавить это вверху файла:

import findspark
findspark.init()

См. https://github.com/minrk/findspark

0 голосов
/ 16 мая 2019

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

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

Вместо редактирования переменных среды вы можете просто убедиться, что среда Python (та, что с pyspark) также имеет ту же версию py4j, что и zip-файл, который находится в \ python \ lib \ dictionary в папке Spark. Например, d: \ Programs \ Spark \ python \ lib \ py4j-0.10.7-src.zip в моей системе, для Spark 2.3.2. Это версия py4j, поставляемая как часть файла архива Spark.

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

Следующие шаги решили мою проблему: - Понижение до 2.3.2 - добавление PYTHONPATH в качестве переменной системной среды со значением %SPARK_HOME%\python;%SPARK_HOME%\python\lib\py4j-<version>-src.zip:%PYTHONPATH% Примечание: используйте правильную версию в приведенном выше значении, не копируйте точно.

0 голосов
/ 21 ноября 2018

Используйте SparkContext (). Stop () в конце программы, чтобы остановить эту ситуацию.

0 голосов
/ 07 ноября 2018

PySpark недавно выпустил 2.4.0, но стабильной версии для spark, совпадающей с этой новой версией, не существует. Попробуйте понизить до pyspark 2.3.2, это исправило это для меня

Изменить: для большей ясности ваша версия PySpark должна совпадать с загруженной версией Apache Spark, иначе вы можете столкнуться с проблемами совместимости

Проверьте версию pyspark с помощью

замораживание пунктов

0 голосов
/ 06 ноября 2018

У меня только что была новая установка pyspark на моем устройстве Windows, и у меня была точно такая же проблема. Кажется, что помогло следующее:

Перейдите к переменным системного окружения и добавьте в него PYTHONPATH со следующим значением: %SPARK_HOME%\python;%SPARK_HOME%\python\lib\py4j-<version>-src.zip:%PYTHONPATH%, просто проверьте, какая у вас версия py4j в вашей папке spark / python / lib.

Причина, по которой я думаю, что это работает, заключается в том, что когда я установил pyspark с помощью conda, он также загрузил версию py4j, которая может быть несовместима с конкретной версией spark, поэтому он, кажется, упаковывает свою собственную версию.

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