apache spark - Link Spark con iPython Notebook
spark python documentation (4)
Para su información, puede ejecutar Scala, PySpark, SparkR y SQL con Spark ejecutándose sobre Jupyter a través de https://github.com/ibm-et/spark-kernel ahora. Los nuevos intérpretes se agregaron (y se marcaron como experimentales) desde la solicitud de extracción https://github.com/ibm-et/spark-kernel/pull/146 .
Consulte la página wiki de soporte de idiomas para obtener más información.
He seguido algunos tutoriales en línea, pero no funcionan con
Spark 1.5.1
en OS X El Capitan (10.11)
Básicamente he ejecutado estos comandos descargar
apache-spark
brew update
brew install scala
brew install apache-spark
actualizado el .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
correr
ipython profile create pyspark
creó un archivo de inicio
~/.ipython/profile_pyspark/startup/00-pyspark-setup.py
configurado de esta manera
# 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"))
Luego ejecuto
ipython notebook --profile=pyspark
y la notebook funciona bien, pero no se reconoce el
sc
(contexto de chispa).
¿Alguien logró hacer esto con
Spark 1.5.1
?
EDITAR: puedes seguir esta guía para que funcione
Primero, asegúrese de tener un ambiente de chispa en su máquina.
Luego, instale un módulo python
findspark
través de pip:
$ sudo pip install findspark
Y luego en el caparazón de python:
import findspark
findspark.init()
import pyspark
sc = pyspark.SparkContext(appName="myAppName")
Ahora puede hacer lo que quiera con pyspark en el shell de python (o en ipython).
En realidad, es la forma más fácil desde mi punto de vista usar el kernel de chispa en el jupyter
Spark with IPython / Jupyter notebook es genial y me complace que Alberto haya podido ayudarlo a que funcione.
Como referencia también vale la pena considerar 2 buenas alternativas que vienen preempaquetadas y que pueden integrarse fácilmente en un clúster YARN (si lo desea).
Cuaderno Spark: https://github.com/andypetrella/spark-notebook
Apache Zeppelin: https://zeppelin.incubator.apache.org/
Al momento de escribir, Spark Notebook (v0.6.1) es más maduro y puede precompilar una instalación contra su versión de Spark y Hadoop aquí: http://spark-notebook.io/
Zeppelin (v0.5) parece muy prometedor pero no ofrece tanta funcionalidad como Spark Notebook o IPython con Spark en este momento.
Tengo instalado Jupyter, y de hecho es más simple de lo que piensas:
- Instala anaconda para OSX.
-
Instale jupyter escribiendo la siguiente línea en su terminal Haga clic en mí para obtener más información .
ilovejobs@mymac:~$ conda install jupyter
-
Actualiza jupyter por si acaso.
ilovejobs@mymac:~$ conda update jupyter
-
Descargue Apache Spark y compílelo, o descargue y descomprima Apache Spark 1.5.1 + Hadoop 2.6 .
ilovejobs@mymac:~$ cd Downloads ilovejobs@mymac:~/Downloads$ wget http://www.apache.org/dyn/closer.lua/spark/spark-1.5.1/spark-1.5.1-bin-hadoop2.6.tgz
-
Cree una carpeta de
Apps
en su hogar (es decir):ilovejobs@mymac:~/Downloads$ mkdir ~/Apps
-
Mueva la carpeta sin comprimir
spark-1.5.1
al directorio~/Apps
.ilovejobs@mymac:~/Downloads$ mv spark-1.5.1/ ~/Apps
-
Vaya al directorio
~/Apps
y verifique que la chispa esté allí.ilovejobs@mymac:~/Downloads$ cd ~/Apps ilovejobs@mymac:~/Apps$ ls -l drwxr-xr-x ?? ilovejobs ilovejobs 4096 ?? ?? ??:?? spark-1.5.1
-
Aquí está la primera parte difícil . Agregue los binarios de chispa a su
$PATH
:ilovejobs@mymac:~/Apps$ cd ilovejobs@mymac:~$ echo "export $HOME/apps/spark/bin:$PATH" >> .profile
-
Aquí está la segunda parte difícil . Agregue también estas variables de entorno:
ilovejobs@mymac:~$ echo "export PYSPARK_DRIVER_PYTHON=ipython" >> .profile ilovejobs@mymac:~$ echo "export PYSPARK_DRIVER_PYTHON_OPTS=''notebook'' pyspark" >> .profile
-
Obtenga el perfil para hacer que estas variables estén disponibles para este terminal
ilovejobs@mymac:~$ source .profile
-
Cree un directorio
~/notebooks
.ilovejobs@mymac:~$ mkdir notebooks
-
Mover a
~/notebooks
y ejecutar pyspark:ilovejobs@mymac:~$ cd notebooks ilovejobs@mymac:~/notebooks$ pyspark
Tenga en cuenta que puede agregar esas variables al
.bashrc
ubicado en su hogar.
Ahora sé feliz, deberías poder ejecutar jupyter con un kernel pyspark (lo mostrará como un pitón 2 pero usará chispa)