-
Notifications
You must be signed in to change notification settings - Fork 8
Spark
Antes de comenzar, fíjate que necesitas el JDK instalado. Si usás ubuntu:
sudo apt-get update
sudo apt-get install default-jdk
sudo update-alternatives --config java
En el menú que se muestra elegís el que recién instalaste. Copiate el path dónde dice que se instaló y seguí así:
sudo vim /etc/environment
Al final del archivo agrega la siguiente línea:
JAVA_HOME="la_ruta_que_copiaste"
Guardá (dale, no es tan díficil). Y tirá los siguientes comandos:
source /etc/environment
echo $JAVA_HOME
Al imprimir la variable de entorno en el último paso deberías ver lo mismo que copiaste previamente.
Si no usás ubuntu probablemente tengas alguna idea de lo que estás haciendo, así que sabrás instalarlo por tu cuenta :P
mkdir ~/.pyspark && cd "$_"
virtualenv -p python3 venv
source venv/bin/activate
pip install jupyterlab pyspark
mkdir $( dirname $( jupyter-kernelspec list | grep python3 | sed 's/[^\/]*//' ) | awk '{print $1"/pyspark"}' ); cd "$_"
wget https://gist.github.com/CrossNox/b473f7a8eed1bbefdb6bc35e86442b55/archive/0ab666460d235d3bb4ea2619e46ec056d003a777.zip
unzip -j *.zip && rm *.zip
eval "echo \"$(cat kernel.json)\"" | tr "'" '"' > kernel2.json && rm kernel.json && mv kernel2.json kernel.json
Y para probarlo:
jupyter lab
Y en el navegador se te va a abrir jupyter lab, proba de levantar un notebook con el kernel pySpark, con un código sencillo como:
sc.parallelize(range(10)).map(lambda x: x*2).collect()
Y fijate que no pinche.
¯\(ツ)/¯
Vas a necesitar docker instalado, obviamente. Cómo instalarlo se escapa del alcance de ésta guía actualmente.
mkdir pyspark-docker && cd $_
wget https://gist.githubusercontent.com/CrossNox/2f59051473e2dacc067c710a5730d2dd/raw/02352ee6d246df44222a1f91dc8bea2eef36699b/Dockerfile
wget https://gist.github.com/CrossNox/4a52b22f77efc0d43c43e4c998b6bef2/archive/1ec6d34bead6959f7b755c7486ab4cc7f0692029.zip && unzip -j *.zip -d pyspark && rm *.zip
docker build -t pyspark .
docker run -p 127.0.0.1:8888:8888 pyspark
Y luego pueden acceder desde un navegador en localhost:8888