Link Spark с ноутбуком iPython

Я следил за некоторыми учебниками онлайн, но они не работают с Spark 1.5.1 в OS X El Capitan (10.11)

В основном я запускаю эти команды для загрузки apache-spark

brew update
brew install scala
brew install apache-spark

обновлен .bash_profile

# For a ipython notebook and pyspark integration
if which pyspark > /dev/null; then
  export SPARK_HOME="/usr/local/Cellar/apache-spark/1.5.1/libexec/"
  export PYSPARK_SUBMIT_ARGS="--master local[2]"
fi

run

ipython profile create pyspark

создал загрузочный файл ~/.ipython/profile_pyspark/startup/00-pyspark-setup.py, сконфигурированный таким образом

# Configure the necessary Spark environment
import os
import sys

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

# If Spark V1.4.x is detected, then add ' pyspark-shell' to
# the end of the 'PYSPARK_SUBMIT_ARGS' environment variable
spark_release_file = spark_home + "/RELEASE"
if os.path.exists(spark_release_file) and "Spark 1.4" in open(spark_release_file).read():
    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

# Add the spark python sub-directory to the path
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, "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"))

Затем я запускаю ipython notebook --profile=pyspark, и ноутбук отлично работает, но sc (искровой контекст) не распознается.

Любому удалось сделать это с помощью Spark 1.5.1?

EDIT: вы можете следовать этому руководству, чтобы он работал

https://gist.github.com/tommycarpi/f5a67c66a8f2170e263c

Ответы

Ответ 1

У меня установлен Jupyter, и, действительно, это проще, чем вы думаете:

Обратите внимание, что вы можете добавить эти переменные в .bashrc, расположенный в вашем доме. Теперь будьте счастливы, вы должны будете запустить jupyter с ядром pyspark (он покажет его как python 2, но он будет использовать искру)

Ответ 2

Во-первых, убедитесь, что у вас есть искровое окружение в вашей машине.

Затем установите python-модуль findspark через pip:

$ sudo pip install findspark

И затем в оболочке python:

import findspark
findspark.init()

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

Теперь вы можете делать то, что хотите, с pyspark в оболочке python (или в ipython).

На самом деле это самый простой способ использовать искровое ядро ​​в jupyter

Ответ 3

FYI, вы можете запустить Scala, PySpark, SparkR и SQL с помощью Spark, запущенного поверх Jupyter через https://github.com/ibm-et/spark-kernel. Новые интерпретаторы были добавлены (и отмечены экспериментально) из запроса pull https://github.com/ibm-et/spark-kernel/pull/146.

Дополнительную информацию см. в разделе поддержка языка для вики-страницы.

Ответ 4

Искра с ноутбуком IPython/Jupyter великолепна, и я рад, что Alberto смог помочь вам заставить его работать.

Для справки также стоит рассмотреть 2 хорошие альтернативы, которые поставляются предварительно упакованными и могут быть легко интегрированы в кластер YARN (при желании).

Ноутбук Spark: https://github.com/andypetrella/spark-notebook

Apache Zeppelin: https://zeppelin.incubator.apache.org/

Во время написания Spark Notebook (v0.6.1) более зрелый, и вы можете предварительно установить установку на версию Spark и Hadoop здесь: http://spark-notebook.io/

Zeppelin (v0.5) выглядит очень многообещающим, но сейчас не предлагает столько функциональности, как Spark Notebook или IPython с Spark.