tutorial spark instalar findspark python apache-spark ipython pyspark

instalar - Cómo cargar el shell de IPython con PySpark



spark 2.3 6 (6)

Si usa Spark <1.2, puede ejecutar bin/pyspark con una variable de entorno IPYTHON=1 .

IPYTHON=1 /path/to/bin/pyspark

o

export IPYTHON=1 /path/to/bin/pyspark

Si bien lo anterior seguirá funcionando en Spark 1.2 y superior, la forma recomendada de configurar el entorno de Python para estas versiones es PYSPARK_DRIVER_PYTHON

PYSPARK_DRIVER_PYTHON=ipython /path/to/bin/pyspark

o

export PYSPARK_DRIVER_PYTHON=ipython /path/to/bin/pyspark

Puede reemplazar ipython con una ruta al intérprete de su elección.

Quiero cargar el shell de IPython (no el cuaderno de IPython) en el que puedo usar PySpark a través de la línea de comandos. ¿Es eso posible? He instalado Spark-1.4.1.


Esto es lo que funcionó para mí:

# if you run your ipython with 2.7 version with ipython2 # whatever you use for launching ipython shell should come after ''='' sign export PYSPARK_DRIVER_PYTHON=ipython2

y luego desde el directorio SPARK_HOME:

./bin/pyspark



Lo que me pareció útil es escribir scripts bash que carguen Spark de una manera específica. Hacer esto le dará una manera fácil de iniciar Spark en diferentes entornos (por ejemplo, ipython y un cuaderno jupyter).

Para hacer esto, abra un script en blanco (usando el editor de texto que prefiera), por ejemplo uno llamado ipython_spark.sh

Para este ejemplo, proporcionaré el script que uso para abrir la chispa con el intérprete de ipython:

#!/bin/bash export PYSPARK_DRIVER_PYTHON=ipython ${SPARK_HOME}/bin/pyspark / --master local[4] / --executor-memory 1G / --driver-memory 1G / --conf spark.sql.warehouse.dir="file:///tmp/spark-warehouse" / --packages com.databricks:spark-csv_2.11:1.5.0 / --packages com.amazonaws:aws-java-sdk-pom:1.10.34 / --packages org.apache.hadoop:hadoop-aws:2.7.3

Tenga en cuenta que tengo SPARK_HOME definido en mi bash_profile, pero podría simplemente insertar la ruta completa donde esté ubicado pyspark en su computadora

Me gusta poner todos los scripts así en un solo lugar, así que puse este archivo en una carpeta llamada "scripts"

Ahora, para este ejemplo, debe ir a su perfil_bash e ingresar las siguientes líneas:

export PATH=$PATH:/Users/<username>/scripts alias ispark="bash /Users/<username>/scripts/ipython_spark.sh"

Estas rutas serán específicas de donde coloca ipython_spark.sh y luego puede necesitar actualizar los permisos:

$ chmod 711 ipython_spark.sh

y fuente su bash_profile:

$ source ~/.bash_profile

Estoy en un Mac, pero esto también debería funcionar para Linux, aunque seguramente actualizarás .bashrc en lugar de bash_profile.

Lo que me gusta de este método es que puede escribir varios guiones, con diferentes configuraciones y abrir chispa en consecuencia. Dependiendo de si está configurando un clúster, necesita cargar diferentes paquetes o cambiar el número de núcleos que tiene a su disposición, etc. puede actualizar este script o crear uno nuevo. Como se señala por @ zero323 arriba PYSPARK_DRIVER_PYTHON = es la sintaxis correcta para Spark> 1.2 Estoy usando Spark 2.2


Utilizo ptpython (1) , que no solo proporciona la funcionalidad de ipython , sino también vi-1 o emacs (1) ; también proporciona inteligencia / sentido emergente de códigos dinámicos, que es extremadamente útil cuando se trabaja Ad-Hoc SPARK en la CLI.

Aquí está mi sesión de ptpython habilitada para vi , tomando nota del modo VI (INSERT) en la parte inferior del screehshot, así como el prompt de estilo de ipython para indicar que esas capacidades de ptpython han sido seleccionadas (más sobre cómo seleccionar ellos en un momento):

Para obtener todo esto, realice los siguientes pasos simples :

user@linux$ pip3 install ptpython # Everything here assumes Python3 user@linux$ vi ${SPARK_HOME}/conf/spark-env.sh # Comment-out/disable the following two lines. This is necessary because # they take precedence over any UNIX environment settings for them: # PYSPARK_PYTHON=/path/to/python # PYSPARK_DRIVER_PYTHON=/path/to/python user@linux$ vi ${HOME}/.profile # Or whatever your login RC-file is. # Add these two lines: export PYSPARK_PYTHON=python3 # Fully-Qualify this if necessary. (python3) export PYSPARK_DRIVER_PYTHON=ptpython3 # Fully-Qualify this if necessary. (ptpython3) user@linux$ . ${HOME}/.profile # Source the RC file. user@linux$ pyspark # You are now running pyspark(1) within ptpython; a code pop-up/interactive # shell; with your choice of vi(1) or emacs(1) key-bindings; and # your choice of ipython functionality or not.

Para seleccionar sus preferencias de pypython (y hay una gran cantidad de ellas), simplemente presione F2 desde dentro de una sesión de ptpython , y seleccione las opciones que desee.

NOTA DE CLAUSURA : Si envía una aplicación Python Spark (en lugar de interactuar con pyspark (1) a través de la CLI, como se muestra arriba), simplemente configure PYSPARK_PYTHON y PYSPARK_DRIVER_PYTHON programáticamente en Python, de la siguiente manera:

os.environ[''PYSPARK_PYTHON''] = ''python3'' os.environ[''PYSPARK_DRIVER_PYTHON''] = ''python3'' # Not ''ptpython3'' in this case.

Espero que esta respuesta y configuración sean útiles.


si la versión de spark> = 2.0 y la configuración siguiente podrían agregarse a .bashrc

export PYSPARK_PYTHON=/data/venv/your_env/bin/python export PYSPARK_DRIVER_PYTHON=/data/venv/your_env/bin/ipython