PySpark: не удалось создать SparkSession. (Ошибка Java-шлюза) - PullRequest
5 голосов
/ 29 марта 2019

Я установил PySpark на Windows и у меня не было проблем до вчерашнего дня.Я использую windows 10, PySpark version 2.3.3(Pre-build version), java version "1.8.0_201".Вчера, когда я попытался создать сеанс спарка, я столкнулся с ошибкой ниже.

Exception                                 Traceback (most recent call last)
<ipython-input-2-a9ef4ac1a07d> in <module>
----> 1 spark = SparkSession.builder.appName("Hello").master("local").getOrCreate()

C:\spark-2.3.3-bin-hadoop2.7\python\pyspark\sql\session.py in getOrCreate(self)
    171                     for key, value in self._options.items():
    172                         sparkConf.set(key, value)
--> 173                     sc = SparkContext.getOrCreate(sparkConf)
    174                     # This SparkContext may be an existing one.
    175                     for key, value in self._options.items():

C:\spark-2.3.3-bin-hadoop2.7\python\pyspark\context.py in getOrCreate(cls, conf)
    361         with SparkContext._lock:
    362             if SparkContext._active_spark_context is None:
--> 363                 SparkContext(conf=conf or SparkConf())
    364             return SparkContext._active_spark_context
    365 

C:\spark-2.3.3-bin-hadoop2.7\python\pyspark\context.py in __init__(self, master, appName, sparkHome, pyFiles, environment, batchSize, serializer, conf, gateway, jsc, profiler_cls)
    127                     " note this option will be removed in Spark 3.0")
    128 
--> 129         SparkContext._ensure_initialized(self, gateway=gateway, conf=conf)
    130         try:
    131             self._do_init(master, appName, sparkHome, pyFiles, environment, batchSize, serializer,

C:\spark-2.3.3-bin-hadoop2.7\python\pyspark\context.py in _ensure_initialized(cls, instance, gateway, conf)
    310         with SparkContext._lock:
    311             if not SparkContext._gateway:
--> 312                 SparkContext._gateway = gateway or launch_gateway(conf)
    313                 SparkContext._jvm = SparkContext._gateway.jvm
    314 

C:\spark-2.3.3-bin-hadoop2.7\python\pyspark\java_gateway.py in launch_gateway(conf)
     44     :return: a JVM gateway
     45     """
---> 46     return _launch_gateway(conf)
     47 
     48 

C:\spark-2.3.3-bin-hadoop2.7\python\pyspark\java_gateway.py in _launch_gateway(conf, insecure)
    106 
    107             if not os.path.isfile(conn_info_file):
--> 108                 raise Exception("Java gateway process exited before sending its port number")
    109 
    110             with open(conn_info_file, "rb") as info:

Exception: Java gateway process exited before sending its port number

Я проверил проблемы pyspark на github, а также ответы на вопросы stackoverflow, возникшие на тот же случай, но проблема не решена.

Я попробовал следующие методы:

1.) Пробовал удалить, установить и изменить каталог установки java.В настоящее время мой каталог установки Java C:/Java/. Pyspark: Исключение: процесс шлюза Java завершился до отправки драйверу его номера порта

2.) Пробная настройка PYSPARK_SUBMIT_ARGS, но без помощи.

Пожалуйста, предложите мневозможные решения.

Ответы [ 3 ]

1 голос
/ 08 апреля 2019

Я думаю, вам нужно снова удалить java и pyspark, а затем переустановить java и pyspark.

pip install pyspark

Затем перейдите в систему> предварительные настройки системы> переменные среды>, затем отредактируйте java home в переменных пользователя> Path & system variable> Path.enter image description here

1 голос
/ 27 мая 2019

Пожалуйста, убедитесь, что переменная окружения JAVA_HOME не должна содержать пробелов, в противном случае может выдаться ошибка , я удалил ее, и это сработало для меня.Вот краткий код для проверки вашего JAVA_HOME в python

import os print (os.envrion ['JAVA_HOME'])

0 голосов
/ 05 апреля 2019

После просмотра кода, который приводит к ошибке, я вижу, что это могут быть проблемы.

  1. Проверьте, есть ли переменная окружения TEMP, определенная в вашей системе. введите описание изображения здесь

Если нет, определите один.

  1. Если определен TEMP, убедитесь, что папка действительно существует и имеет полный доступ.

По сути, код, который вызывает исключение, ищет папку для создания временных файлов в вашей системе. Вы должны убедиться, что они присутствуют.

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