No tienes acceso a esta clase

隆Contin煤a aprendiendo! 脷nete y comienza a potenciar tu carrera

脷ltima oportunidad para asegurar tu aprendizaje por 1 a帽o a precio especial

Antes: $249

Currency
$189/a帽o

Paga en 4 cuotas sin intereses

Paga en 4 cuotas sin intereses
Suscr铆bete

Termina en:

0D
7H
57M
30S

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

6/25
Recursos

Aportes 49

Preguntas 13

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad?

o inicia sesi贸n.

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

as铆 de f谩cil amigos
![](

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.

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

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 鈥榩yspark鈥

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

Por cada 鉂わ笍 : Es un voto para que Platzi pueda actualizar este curso tan necesario. Lo m谩s r谩pido posible :3

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铆 馃槂

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

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?

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

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

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

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 鈥榩yspark鈥, 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 鈥榶鈥
隆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鈹溌ea: 1 Car鈹溍璫ter: 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.