Создать профиль PySpark для IPython

Я следую по этой ссылке http://ramhiser.com/2015/02/01/configuring-ipython-notebook-support-for-pyspark/ для создания профиля PySpark для IPython.

00-pyspark-setup.py
# Configure the necessary Spark environment
import os
import sys

spark_home = os.environ.get('SPARK_HOME', None)
sys.path.insert(0, spark_home + "python")

# Add the py4j to the path.
# You may need to change the version number to match your install
sys.path.insert(0, os.path.join(spark_home, 'pythonlibpy4j-0.8.2.1-src.zip'))

# Initialize PySpark to predefine the SparkContext variable 'sc'
execfile(os.path.join(spark_home, 'pythonpysparkshell.py'))

моя проблема, когда я типа sc в IPython-ноутбук, у меня есть '' Я должен увидеть нечто похожее на <pyspark.context.SparkContext at 0x1097e8e90>.

есть идеи о том, как его решить ?

4 ответов


Я пытался сделать то же самое, но были проблемы. Теперь я использую findspark (https://github.com/minrk/findspark) вместо. Вы можете установить его с помощью pip (см.https://pypi.python.org/pypi/findspark/):

$ pip install findspark

и затем, внутри Блокнота:

import findspark
findspark.init()

import pyspark
sc = pyspark.SparkContext(appName="myAppName")

если вы хотите избежать этого шаблона, вы можете поместить вышеуказанные 4 строки в 00-pyspark-setup.py.

(прямо сейчас у меня есть Spark 1.4.1. и findspark 0.0.5.)


пожалуйста, попробуйте установить правильное значение SPARK_LOCAL_IP переменной, например.:

export SPARK_LOCAL_IP="$(hostname -f)"

перед запуском ipython notebook --profile=pyspark.

если это не помогает, попробуйте отладить среду, выполнив сценарий установки:

python 00-pyspark-setup.py

возможно, вы можете найти некоторые строки ошибок таким образом и отладить их.


вы на windows? Я имею дело с теми же вещами, и пара вещей помогла. В 00-pyspark-setup.py, измените эту строку (сопоставьте свой путь к папке spark)

# Configure the environment
if 'SPARK_HOME' not in os.environ:
    print 'environment spark not set'
    os.environ['SPARK_HOME'] = 'C:/spark-1.4.1-bin-hadoop2.6'

Я уверен, что вы добавили новую переменную среды, если нет, это будет вручную установить его.

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

Я использую более низкую версию iPython (3), и я называю ее using

ipython notebook --profile=pyspark

изменить 00-pyspark-setup.py в:

# Configure the necessary Spark environment
import os

# Spark home
spark_home = os.environ.get("SPARK_HOME")

######## CODE ADDED ########
os.environ["PYSPARK_SUBMIT_ARGS"] = "--master local[2] pyspark-shell"
######## END OF ADDED CODE #########

sys.path.insert(0, spark_home + "/python")
sys.path.insert(0, os.path.join(spark_home, 'python/lib/py4j-0.8.2.1-src.zip'))

# Initialize PySpark to predefine the SparkContext variable 'sc'
execfile(os.path.join(spark_home, 'python/pyspark/shell.py'))

в основном, добавленный код устанавливает переменную среды PYSPARK_SUBMIT_ARGS в

--master local[2] pyspark-shell, который работает для автономного Spark 1.6.

теперь снова запустите культуры Запустить os.environ["PYSPARK_SUBMIT_ARGS"] чтобы проверить, правильно ли установлено его значение. Если да, то введите sc должен дать вам ожидаемый результат, такой как <pyspark.context.SparkContext at 0x1097e8e90>