No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Jupyter vs CLI: ejecución de Spark en Jupyter Notebook

6/25
Recursos

Aportes 52

Preguntas 13

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Deberían incluir un paso a paso para la instalación en Windows. Aunque sea incluir varios pantallazos. Es difícil seguir el curso de esta manera.

A mi parecer creo que falta un video explicando paso a paso la instalacion de Spark/Hadoop en Windows, se hace muy complicado entender el paso a paso de linux a windows

Para quienes no quieran instalar en sus computadores, pueden usar Colab de Google, aquí dejo la configuración inicial necesaria:

https://colab.research.google.com/drive/1BZ4sYe2UYX8NhKvo1vCg58R-ApjV8pBc?usp=sharing

Slds
Diego

Para los que no quieren realizar la instalación, pueden usar docker para lanzar notebook

docker run -it --rm -p 8888:8888 -p 4040-4050:4040-4050 -v ./file:/home/jovyan/work jupyter/pyspark-notebook

el .file la ruta donde van a guardar los notebooks, y para entrar al notebook cuando corren el comando de docker les aparece la Url que empieza con 127.0.0.1 es copiar y pegar.

así de fácil amigos
![](

Hasta aquí a sido duro para el usuario Windows y me imagino de Mac, recomendaría realizar los tutoriales para estos usuarios. Si bien linux es lo ideal, por la situación que sea hay muchos usuarios de windows y mac.

Gracias a los compañeros por sus aportes en lo referente a esta parte

Actualización, para correr Spark en Colab lo pueden hacer con el siguiente enlace, el cuál está actualizado a Julio 2021 ya que los anteriores comentarios ya no son válidos:

https://colab.research.google.com/drive/1fRCVu8nBmpgd8S7Agglif-VDIOleFSz0?usp=sharing

Por cada ❤️ : Es un voto para que Platzi pueda actualizar este curso tan necesario. Lo más rápido posible :3

Para complementar, este articulo explicando las diferencias entre context y Session en Spark:

https://blog.knoldus.com/spark-why-should-we-use-sparksession/

Si al momento de ejecutar les lanza el error ModuleNotFoundError: No module named ‘pyspark’

Antes de importar las librerias agreguen
import findspark
findspark.init()

Me resulto mucho más simple la implementación de spark en google colaboratory, si alguien quisiera verlo, les dejo el link

https://colab.research.google.com/drive/1u6lcbdfGn4RCnQEM6QwaThZhj_Ee1rMp?usp=sharing

Si utilizas wsl2 y no puedes visualizar la parte de Spark UI cambia el puerto hacia localhost 4041

Hola… Para poder instalar y ejecutar Spark en Colab utilicé éstos simples pasos que me sirvieron a la perfección para todo el curso:

PASO 1:

! sudo apt-get update
! sudo mkdir -p /usr/share/man/man1
! sudo apt-get install -y openjdk-11-jdk
! pip install pyspark

PASO 2:

from pyspark import SparkContext
from pyspark.sql import SparkSession

# LOS IMPORTS QUE REALICEMOS VARIAN SEGÚN EL AVANCE DE LAS CLASES

PASO 3: En mi caso al usar Colab tuve que traer los archivos desde mi Drive, en la que tuve que clonar el repsitorio de github, les dejo los comandos:

from google.colab import drive
drive.mount('/gdrive')
%cd '/gdrive/My Drive'

!git clone https://github.com/terranigmark/curso-apache-spark-platzi

%cd '/gdrive/My Drive/curso-apache-spark-platzi/files'

Espero les sirva como a mí 😃

INTERESANTE

Para los que usamos COLAB dejo actualizado y funcional al 9/03/2023: https://colab.research.google.com/drive/1RUswDmEiZaS1zdox9sbXvDUi1k0Yyese?usp=sharing

Si están usando WSL2 y les sale un error
** py4j.protocol.Py4JError: org.apache.spark.api.python.PythonUtils.getEncryptionEnabled does not exist in the JVM**
Deben agregar

export PYTHONPATH=$SPARK_HOME/python:$SPARK_HOME/python/lib/py4j-0.10.9-src.zip:$PYTHONPATH

en el .bashrc. Pero pues dependiendo de la versión de py4j que hayan instalado.

Para los que estén batallando con la instalación de Apache Spark y quieren probar cómo funcionan los cluster de máquinas, les dejo mi repositorio de GitHub donde encontrarán todo lo necesario para montarse un cluster de Apache Spark usando Docker y docker-compose.

Ir al repositorio

Para quienes no quieran instalar en sus computadores, pueden usar Deepnote:
https://docs.deepnote.com/integrations/spark
Si se registran podrían usar mi link de referidos por favor
https://deepnote.com/referral?token=480a671e

Hola para quienes tengan problemas con anaconda solo hace falta crear un env con python3.7 e instanciarlo con la direccion de envs dentro de la carpeta de anaconda

La instalación en MacOs es tan fácil como en Linux, si alguien tiene duda acá les dejo dos links de Medium, uno usando el .tgz y otro usando Homebrew, respectivamente:

Yo solo cree un entorno virutal de python.
Instale PYSPARK y las librerias mas comunes.
Y todo se ejecuta a la perfeccion.

python3 -m venv vnv
source vnv/bin/activate
pip install pyspark
pip install pandas
pip install numpy

Todo sobre ubuntu.

Si tienen el error ModuleNotFound en from pyspark import SparkContext, solo abran otra terminal y descarguen por via pip de python esa librería, quedando asi su comando para instalar de la siguiente manera:

pip install pyspark

Despues de instalarlo, apaguen anaconda, cierren terminales y vuelvan a iniciar Anaconda con su terminal y ya no debe de haber ningun problema.

Saludos!

Comparto el siguiente tutorial para la instalación de spark y su funcionamiento con Jupyter (https://youtu.be/Rv4NOAn2m-g)

Nota: Es importante manejar los ambientes virtuales de Anaconda para que funcionen las librerías e instancias de Python con Spark. La versión soportada de Python para Spark 2.4.6 debe ser 3.7.

Hay algún problema de al momento de ejecutar si se crean los 2, tanto la session como el contexto? o por la version de spark solo creo la session?

Yo instale el ambiente en Google Colab y estas son las lineas del código, solo ten en cuenta tener la ultima versión del Spark la fecha que realize esto es el 27/06/2024 !apt-get install openjdk-8-jdk-headless -qq > /dev/null !wget -q <https://downloads.apache.org/spark/spark-3.5.1/spark-3.5.1-bin-hadoop3.tgz!tar> xf spark-3.5.1-bin-hadoop3.tgz!pip install -q findspark pyspark \---------------------------------------- import osos.environ\["JAVA\_HOME"] = "/usr/lib/jvm/java-8-openjdk-amd64"os.environ\["SPARK\_HOME"] = "/content/spark-3.5.1-bin-hadoop3" \----------------------------------------- import findsparkfindspark.init() from pyspark.sql import SparkSessionspark = SparkSession.builder.appName('Mi\_Primera\_Base').getOrCreate() \---------------------------------------- Esta es el código para probar lo anterior: \# Create a list of datadata = \[("Alice", 25), ("Bob", 30), ("Charlie", 28)] # Create a DataFrame from the datadf = spark.createDataFrame(data, \["name", "age"]) # Print the DataFramedf.show()

Abre un google collab y colocas las siguientes instrucciones:

#Instalación
!apt-get install openjdk-11-jdk-headless -qq > /dev/null
!wget -q http://archive.apache.org/dist/spark/spark-3.0.1/spark-3.0.1-bin-hadoop3.2.tgz
!tar xf spark-3.0.1-bin-hadoop3.2.tgz 
!pip install -q findspark

import os
os.environ["JAVA_HOME"] = "/usr/lib/jvm/java-11-openjdk-amd64"
os.environ["SPARK_HOME"] = "/content/spark-3.0.1-bin-hadoop3.2"


spark = SparkSession.builder.master("local[*]").appName("MiPrimerSesion").getOrCreate()
sc = SparkContext.getOrCreate()

Y listo, evitas consumir recursos de tu propia máquina

Coemnto tuve que colocar una linea adicional y una distinta a la que el tutor indico en este video * Distinta a la indicada en este video from pyspark.context import SparkContext * Linea Adicional from pyspark import SparkConf con estos dos cambios funciono todo esto fue en MAC.
Aqui dejo una guia que me sirvió para usar spark con un entorno especifico en anaconda navigator en windows <https://www.youtube.com/watch?v=AL6zTrlyAhc>

Pyspark Jupyter Lab Docker

Docker example Pyspark Jupyter Lab

  • Les comparto una manera sencilla de trabajar con spark sin necesidad de instalaciones complejas, yo uso un docker container para trabajar con este, adicionalmente le agregué una configuración para trabajar con Dev Container de VSCode.

  • Pueden usarlo como referencia para aquellos que tienen Windows, además para facilitar el desarrollo.

Creo que en cuanto a cursos, este es uno de los menos fáciles de seguir, en instalación y explicación, podrían actualizar este curso y con el ambiente tanto para W11 como para MAC, lamentablemente una mala experiencia tratando de seguirle el ritmo.

no se hasta el momento pero uso windows
pip install pyspark
obviamente activado el entorno
y ya, me está funcionando en visual estudio

neta que este curso esta pesimo
no me esta sirviendo nada y eso que se instalar y resolver problemas en terminal

A mi me funciono instalar todo en WSL desde windows, siguiendo los pasos de este articulo de medium: https://medium.com/mlearning-ai/single-node-spark-pyspark-cluster-on-windows-subsystem-for-linux-wsl2-22860888a98d

Este curso ya está bastante desactualizado y la instalación resulta caótica. En Abril 2023 me resultó mas sencillo trabajar con un contenedor de Docker con todas las librerías y dependencias instaladas.

https://jupyter-docker-stacks.readthedocs.io/en/latest/index.html

Diferencia entre contexto y sesion en Spark
La principal diferencia entre el contexto de Spark y la sesión de Spark es el tipo de datos que manejan y las operaciones que se pueden realizar con ellos.

  • SparkContext proporciona una interfaz de programación de bajo nivel para trabajar con RDDs.
  • SparkSession presenta una abstracción de nivel superior para trabajar con DataFrames, que son una estructura de datos más avanzada y fácil de usar.

para los compañeros que están trabajando desde wsl.
Hay que crear un alias para iniciar jupyter sin navegador.
Abrir su configuración de bash:
<```
nano .bashrc

 Agregue al final del archivo
<```
alias jupyter-notebook="~/.local/bin/jupyter-notebook --no-browser"
```>
guardar y salir con ctrl +x luego "y" después intro
actualizar con <```
source ~/.bashrc
```>
ahora con el alias creado se ejecuta la siguiente linea, <jupyter notebook --no-browser>




si tienen problemas con instalaciones en Windows o Mac o no desean trabajar en local una buena opción además de las que mencionan los compañeros puede ser Databricks Community Edition, te permite trabajar con python o scala

I really recommend docker, this video shows how to configure Jupyter and spark.

https://www.youtube.com/watch?v=DAdCrDVECwY

Me va bien en google colaboratory

Para los amantes de docker, corren todo con este comando

docker run --rm -d  --name notebook --net host  jupyter/all-spark-notebook

docker run -it --rm -p 8888:8888 jupyter/pyspark-notebook

Bastante talacha el estar intentando crear el ambiente para continuar con el curso, tuve que ocupar otra computadora pues la primera no tenía ya espacio y me generaba muchos errores. Al final termine ocupando una maquina virtual con ubuntu

Acá como usar todo esto en una terminal Unix dentro de Windows, ya que usar todo esto en Windows directamente es muy complicado en sus instalaciones y configuraciones:
https://www.youtube.com/watch?v=QiPEKsTBJt4&t=23s

Cuando corrí los dos módulos me muestra error ModuleNotFoundError

Para los que usan Windows pueden instalar WSL2, a la fecha, toda la configuración funciona a como se explica en las últimas 3 clases.

https://platzi.com/clases/prework-windows/

cuando te das cuenta de que toda tu configuracion fallo por que se instalo con el java que le canto jajaja

Por fin pude instalar pyspark en Windows 10 y ejecutar correctamente las dos primeras lineas del codigo. 😃

Si al ejecutar la primera línea les sale un error ModuleNotFoundError: No module named ‘pyspark’, abran el Anaconda Prompt (si instalaste Anaconda lo deberías tener) y ejecuten lo siguiente:
conda install pyspark
En el camino les pedirán confirmar un detalle, le dan ‘y’
¡Listo!

Estoy perdido en las configuraciones, se me ha hecho muy complicado en Linux, y mucho mas en Windows

Gente me sale el siguiente error: Java gateway process exited before sending its port number. Ya he buscado en línea pero no encuentro solución. Estoy usando spark en windows 10 y ya he verificado que la versión de Java es la correcta.

Estimados,

Tengo el siguiente problema ¿A alguno ya le ha pasado y lo ha resuelto?

PD: Las rutas comentadas las tuve que colocar como (rutacomentada) por que me bloquea el comentario platzi por rutas no seguras.

edu@LAPTOP-U8VOQL2R:~/curso-apache-spark-platzi$ jupyter notebook
[I 18:39:51.590 NotebookApp] JupyterLab extension loaded from /home/edu/anaconda3/lib/python3.7/site-packages/jupyterlab
[I 18:39:51.591 NotebookApp] JupyterLab application directory is /home/edu/anaconda3/share/jupyter/lab
[I 18:39:51.598 NotebookApp] Serving notebooks from local directory: /home/edu/curso-apache-spark-platzi
[I 18:39:51.598 NotebookApp] Jupyter Notebook 6.1.4 is running at:
[I 18:39:51.599 NotebookApp] (rutacomentada)/?token=3c1d2c6b280f08dccfb1b8a8bba11a8698d90b6bbd7aba4f
[I 18:39:51.601 NotebookApp]  or (rutacomentada)?token=3c1d2c6b280f08dccfb1b8a8bba11a8698d90b6bbd7aba4f
[I 18:39:51.602 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).
[C 18:39:51.620 NotebookApp]

    To access the notebook, open this file in a browser:
        file:///home/edu/.local/share/jupyter/runtime/nbserver-29556-open.html
    Or copy and paste one of these URLs:
        (rutacomentada)?token=3c1d2c6b280f08dccfb1b8a8bba11a8698d90b6bbd7aba4f
     or (rutacomentada)?token=3c1d2c6b280f08dccfb1b8a8bba11a8698d90b6bbd7aba4f
Start : Este comando no se puede ejecutar debido al error: El sistema no puede encontrar el archivo especificado.
En línea: 1 Carácter: 1
+ Start "file:///home/edu/.local/share/jupyter/runtime/nbserver-29556-o ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (:) [Start-Process], InvalidOperationException
    + FullyQualifiedErrorId : InvalidOperationException,Microsoft.PowerShell.Commands.StartProcessCommand```

Muchas gracias.