Articoli

Come usare PySpark sul computer

 

Autore: Favio Vázquez

Traduttrice: Sabrina Sala

 

Apache scla image.

https://www.mytectra.com/apache-spark-and-scala-training.html

Partiamo dal presupposto che conosciate Apache Spark e PySpark ma se volete guardare una breve introduzione leggete qui.

Il simbolo $ sta per eseguire il comando nella shell, quindi non dovete copiarlo.

Eseguire PySpark in Jupyter

Jupiter

 

  1. Installare Jupyter Notebook

$ pip install jupyter

  1. Installare PySpark

Controllate di avere Java 8, o successive versioni, sul vostro computer. Vi servirà ovviamente anche Python (consigliamo Python 3.5 da Anaconda).

Ora andate sulla pagina download di Spark. Selezionate l’ultima versione, un pacchetto predefinito per Hadoop, scaricatelo.

Se volete il supporto Hive o altre funzionalità a piacere, dovrete costruire autonomamente la distribuzione spark: per farlo andate qui.

Aprite il file zip e spostatelo nella cartella directory / opt:

$ tar -xzf spark-2.3.0-bin-hadoop2.7.tgz
$ mv spark-2.3.0-bin-hadoop2.7 /opt/spark-2.3.0

Create un link simbolico che vi permetterà di avere molteplici versioni di Spark:

$ ln -s /opt/spark-2.3.0 /opt/spark̀

Infine, inserite nella vostra shell bash (o zsh ecc.) dove trovare Spark in questo modo: configurate le vostre varibili $PATH aggiungendo le seguenti righe nel vostro file ~/.bashrc (o ~/.zshrc):

export SPARK_HOME=/opt/spark
export PATH=$SPARK_HOME/bin:$PATH

Ora, per eseguire PySpark in Jupyter, avete bisogno di aggiornare le variabili di ambiente di PySpark. Aggiungete queste righe al vostro file ~/.bashrc (or ~/.zshrc):

export PYSPARK_DRIVER_PYTHON=jupyter
export PYSPARK_DRIVER_PYTHON_OPTS=’notebook’

Riavviate il terminale e lanciate PySpark:

$ pyspark

Questo comando dovrebbe avviare Jupiter Notebook nel vostro browser. Create quindi un nuovo notebook cliccando ‘New’ > ‘Notebooks Python [default]’. Avrete così SparkContext e SqlContext (o solo SparkSession per Spark > 2.x) sul vostro computer e potere ora avviare PySpark da pc. Qui alcuni esempi per testare l’ambiente.

Eseguire PySpark nell’IDE scelto (Integrated Devolopment Environment)

Alcune volte avrete bisogno di un intero IDE per poter creare codici più complessi e PySpark non è di dafult in sys.path. ciò però non significa che non possiate usarlo come una normale libreria: è sufficiente aggiungerlo al sys.path in fase di esecuzione. Il pacchetto findspark ha proprio questa funzione.

Per installarlo, inserite:

$ pip install findspark

Successivamente, per avviare PySpark nel vostro IDE, scrivete:

import findspark
findspark.init()import pyspark
sc = pyspark.SparkContext(appName=”myAppName”)

È questo è tutto. Di seguito un esempio per testare PySpark localmente:

 

import

findspark

findspark.init(“/opt/spark”)
import random
from pyspark import SparkContext
sc = SparkContext(appName=”EstimatePi”)
def inside(p):
    x, y = random.random(), random.random()
    return x*x + y*y < 1
NUM_SAMPLES = 1000000
count = sc.parallelize(range(0, NUM_SAMPLES)) \
             .filter(inside).count()
print(“Pi is roughly %f” % (4.0 * count / NUM_SAMPLES))
sc.stop()

 

dubbio o domanda, non esitate a commentare e chiedere chiarimenti!

 

Jupyter Notebook Python, Scala, R, Spark, Mesos Stack

docker

 

 

Docker è simile a una “macchina virtuale” leggera (anche se, in realtà, Dockery fornisce “immagini” e “cointainer” e non macchine virtuali), come se avessimo un secondo computer con un proprio sistema operativo all’interno della nostra macchina. Possiamo accedere a questa macchina virtuale dal nostro computer e usarla come se stessimo accedendo a un computer remoto via ssh.

jupyter/docker-stacks
docker-stacks – Opinionated stacks of ready-to-run Jupyter applications in Docker.github.com

cliccate sul link e seguite gli step indicati per avere una versione “containerizzata” di Spark (2.3 con Hadoop 2.7)

Utilizzo base

Il comando che segue starts a container with the Notebook server listening for HTTP connections on port 8888 con un token di autenticazione generato in maniera casuale.

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

 

Installazione di Pip

Pip

Pip

 

Questo pacchetto è ancora sperimentale e potrà cambiare nelle versioni future.

Il pacchetto Python per Spark non è inteso per rimpiazzare tutti gli altri casi d’uso. Questa versione Python packaged di Spark è adeguata per interagire con un cluster esistente, che può essere Spark in sè, YARN o Mesos, ma non contiene gli strumenti necessari per configurare nuovi cluster.

Per istallarlo, eseguite:

$ pip install pyspark