Подтвердить что ты не робот

Искры контекста 'sc' не определены

Я новичок в Spark, и я пытаюсь установить PySpark, обратившись к нижерасположенному сайту.

http://ramhiser.com/2015/02/01/configuring-ipython-notebook-support-for-pyspark/

Я попытался установить как готовый пакет, так и построить пакет Spark через SBT.

Когда я пытаюсь запустить код python в ноутбуке IPython, я получаю следующую ошибку.

    NameError                                 Traceback (most recent call last)
   <ipython-input-1-f7aa330f6984> in <module>()
      1 # Check that Spark is working
----> 2 largeRange = sc.parallelize(xrange(100000))
      3 reduceTest = largeRange.reduce(lambda a, b: a + b)
      4 filterReduceTest = largeRange.filter(lambda x: x % 7 == 0).sum()
      5 

      NameError: name 'sc' is not defined

В окне команд я вижу ошибку ниже.

<strong>Failed to find Spark assembly JAR.</strong>
<strong>You need to build Spark before running this program.</strong>

Обратите внимание, что я получил приглашение scala, когда я выполнил команду spark-shell

Update:

С помощью друга я могу исправить проблему, связанную с JAR для сборки Spark, исправив содержимое файла .ipython/profile_pyspark/startup/00-pyspark-setup.py

У меня есть только проблема переменной Spark Context. Изменение заголовка для надлежащего отражения моей текущей проблемы.

4b9b3361

Ответ 1

Одно решение добавляет pyspark-shell к переменной среды оболочки PYSPARK_SUBMIT_ARGS:

export PYSPARK_SUBMIT_ARGS="--master local[2] pyspark-shell"

Существует изменение python/pyspark/java_gateway.py, которое требует PYSPARK_SUBMIT_ARGS включает pyspark-shell, если переменная PYSPARK_SUBMIT_ARGS задается пользователем.

Ответ 2

вам нужно сделать следующее после того, как у вас есть pyspark в вашем пути:

from pyspark import SparkContext
sc =SparkContext()

Ответ 3

Просто небольшое улучшение. Добавьте в начало файла python script следующее.

#! /bin/python
from pyspark import SparkContext, SparkConf
sc =SparkContext()

# your code starts here

Ответ 4

Я добавил следующие строки, предоставленные Вену.

from pyspark import SparkContext
sc =SparkContext()

Затем нижеследующая ошибка была устранена путем удаления переменной среды PYSPARK_SUBMIT_ARGS.

C:\Spark\spark-1.3.1-bin-hadoop2.6\python\pyspark\java_gateway.pyc in launch_gateway() 77 callback_socket.close() 78 if gateway_port is None: 
---> 79 raise Exception("Java gateway process exited before sending the driver its port number") 
80 
81 # 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

Ответ 5

Вам нужно создать экземпляр SparkContext, например:

импорт:

from pyspark import SparkContext

а затем:

sc =SparkContext.getOrCreate()

NB: sc =SparkContext.getOrCreate() работает лучше, чем sc =SparkContext().

Ответ 6

Искра на моем Mac равна 1.6.0, поэтому добавление pyspark-shell не решило проблему. То, что сработало для меня, - это следующий ответ здесь от @karenyng

pyspark_submit_args = os.environ.get("PYSPARK_SUBMIT_ARGS", "") if not "pyspark-shell" in pyspark_submit_args: pyspark_submit_args += " pyspark-shell" os.environ["PYSPARK_SUBMIT_ARGS"] = pyspark_submit_args

Ответ 7

Я получал аналогичную ошибку, пытаясь заставить pySpark работать через PyCharm, и я заметил в журнале, перед этой ошибкой я получал эту ошибку:

env: не найдено

Я проследил это до того, что у меня не было установленной переменной среды Java. Поэтому я добавил os.environ ['JAVA_HOME'] = "/usr/java/jdk1.7.0_67-cloudera"

для моего script (я знаю, что это, вероятно, не лучшее место для него) и ошибка идет, и я получаю свой искровой объект, созданный

Ответ 8

Я также столкнулся с сообщением об ошибке Java gateway process exited before sending the driver its port number.

Я мог бы решить эту проблему, загрузив одну из версий, которые были предварительно созданы для Hadoop (я использовал один для hadoop 2.4). Поскольку я не использую Hadoop, я понятия не имею, почему это что-то изменило, но теперь оно безупречно работает для меня...

Ответ 9

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

Извините за использование старого потока, но это может помочь кому-то:)

Ответ 10

Этот script работал у меня (в Linux):

#!/bin/bash

export PYSPARK_DRIVER_PYTHON=ipython
export PYSPARK_DRIVER_PYTHON_OPTS="--pylab -c 'from pyspark import SparkContext; sc=SparkContext()' -i"
export PYSPARK_SUBMIT_ARGS="--master local[2] pyspark-shell"

pyspark

Чтобы вызвать pyspark, поскольку я звоню туда, я предполагаю, что путь установки "искра/bin" находится в переменной PATH. Если нет, вызовите вместо этого /path/to/spark/bin/pyspark.