Ошибка PySpark в Jupyter после установки PYSPARK_SUBMIT_ARGS

Я пытаюсь загрузить пакет Spark (2.2.1) в блокнот Jupyter, который в противном случае может нормально запускать Spark. Как только я добавлю

%env PYSPARK_SUBMIT_ARGS='--packages com.databricks:spark-redshift_2.10:2.0.1 pyspark-shell'

Я получаю эту ошибку при попытке создать контекст:

---------------------------------------------------------------------------
Exception                                 Traceback (most recent call last)
<ipython-input-5-b25d0ed9494e> in <module>()
----> 1 sc = SparkContext.getOrCreate()
      2 sql_context = SQLContext(sc)

/usr/local/spark/spark-2.2.1-bin-without-hadoop/python/pyspark/context.py in getOrCreate(cls, conf)
    332         with SparkContext._lock:
    333             if SparkContext._active_spark_context is None:
--> 334                 SparkContext(conf=conf or SparkConf())
    335             return SparkContext._active_spark_context
    336 

/usr/local/spark/spark-2.2.1-bin-without-hadoop/python/pyspark/context.py in __init__(self, master, appName, sparkHome, pyFiles, environment, batchSize, serializer, conf, gateway, jsc, profiler_cls)
    113         """
    114         self._callsite = first_spark_call() or CallSite(None, None, None)
--> 115         SparkContext._ensure_initialized(self, gateway=gateway, conf=conf)
    116         try:
    117             self._do_init(master, appName, sparkHome, pyFiles, environment, batchSize, serializer,

/usr/local/spark/spark-2.2.1-bin-without-hadoop/python/pyspark/context.py in _ensure_initialized(cls, instance, gateway, conf)
    281         with SparkContext._lock:
    282             if not SparkContext._gateway:
--> 283                 SparkContext._gateway = gateway or launch_gateway(conf)
    284                 SparkContext._jvm = SparkContext._gateway.jvm
    285 

/usr/local/spark/spark-2.2.1-bin-without-hadoop/python/pyspark/java_gateway.py in launch_gateway(conf)
     93                 callback_socket.close()
     94         if gateway_port is None:
---> 95             raise Exception("Java gateway process exited before sending the driver its port number")
     96 
     97         # In Windows, ensure the Java child processes do not linger after Python has exited.

Exception: Java gateway process exited before sending the driver its port number

Опять же, все работает нормально, пока не установлено PYSPARK_SUBMIT_ARGS (или установлено только pyspark-shell). Как только я добавляю что-нибудь еще (например, если я устанавливаю --master local pyspark-shell), я получаю эту ошибку. Погуглив это, большинство людей предлагают просто избавиться от PYSPARK_SUBMIT_ARGS, чего я не могу по понятным причинам.

Я также пытался установить свой JAVA_HOME, хотя я не понимаю, почему это имеет значение, поскольку Spark работает без этой переменной среды. Аргументы, которые я передаю, работают вне Jupyter с spark-submit и pyspark.

Думаю, мой первый вопрос: есть ли способ получить более подробное сообщение об ошибке? Есть ли где-нибудь файл журнала? Текущее сообщение ничего мне не говорит.


person lfk    schedule 28.02.2018    source источник
comment
Вы пытались запустить его в режиме консоли, то есть вне ноутбука?   -  person femibyte    schedule 28.02.2018
comment
Да. Те же аргументы работают с spark-submit и pyspark (а также с spark-shell)   -  person lfk    schedule 01.03.2018
comment
Нашел проблему. Jupyter включает кавычки в переменную окружения. Пришлось их удалить и все заработало   -  person lfk    schedule 01.03.2018
comment
@lfk Я использовал %env PYSPARK_SUBMIT_ARGS=--packages org.apache.spark:spark-sql-kafka-0-10_2.11:2.3.0 pyspark-shell в самом начале своей записной книжки, но все равно получил ту же ошибку, о которой я сообщил здесь:   -  person kww    schedule 17.04.2018


Ответы (1)


Установите PYSPARK_SUBMIT_ARGS, как показано ниже, перед инициализацией SparkContext:

import os
os.environ['PYSPARK_SUBMIT_ARGS'] = '--packages com.databricks:spark-redshift_2.10:2.0.1 pyspark-shell'
person Nandeesh    schedule 04.01.2019
comment
У меня выдает ошибку: Error: Missing application resource. - person Anna; 28.06.2019