EDIT
Oryginalny odpowiedź powinna nadal działać, ale jest nieporęczny i używamy w następujący sposób w dzisiejszych czasach, który używa PySpark zbudowany w zmiennych:
export PYSPARK_DRIVER_PYTHON=jupyter
export PYSPARK_DRIVER_PYTHON_OPTS="notebook"
Następnie wystarczy uruchomić PySpark bezpośrednio jak ty normalnie, ale przy powyższych ustawieniach uruchamia notebooka zamiast powłoki:
cd path/to/spark
bin/pyspark --master local[*] # Change to use standalone/mesos/yarn master and add any spark config
Jeśli otworzysz nowy notatnik, znajdziesz dla siebie Spark. Można dodać inne opcje Juopyter jeśli chcesz, aby dopasować swoje środowisko, jak:
export PYSPARK_DRIVER_PYTHON_OPTS="notebook --ip='*' --no-browser"
ORYGINALNEGO ODPOWIEDZI
Nadal można skonfigurować rzeczy z tych samych początkowych etapach, tj utworzyć profil za pomocą ipython profile create pyspark
i umieść skrypt uruchamiania w $(ipython profile locate pyspark)/startup/
.
Następnie, aby udostępnić go w notebookach Jupyter, należy określić jądro, które korzysta z tego profilu, tworząc plik $(ipython locate)/kernels/pyspark/kernel.json
. To właśnie kopalnia wygląda następująco:
{
"display_name": "PySpark",
"language": "python",
"argv": [
"python",
"-m", "ipykernel",
"--profile=pyspark",
"-f", "{connection_file}"
],
"env": {
"PYSPARK_SUBMIT_ARGS": " --master spark://localhost:7077 --conf spark.driver.memory=20000m --conf spark.executor.memory=20000m"
}
}
Ważne bit jest w sekcji argv
. Informacje zawarte w sekcji env
jest odbierany przez skrypt startowy używam:
import os
import sys
spark_home = '/opt/spark/'
os.environ["SPARK_HOME"] = spark_home
sys.path.insert(0, spark_home + "/python")
sys.path.insert(0, os.path.join(spark_home, 'python/lib/py4j-0.9-src.zip'))
pyspark_submit_args = os.environ.get("PYSPARK_SUBMIT_ARGS", "")
pyspark_submit_args += " pyspark-shell"
os.environ["PYSPARK_SUBMIT_ARGS"] = pyspark_submit_args
filename = os.path.join(spark_home, 'python/pyspark/shell.py')
exec(compile(open(filename, "rb").read(), filename, 'exec'))
Jak widać jest dość podobna do tej, którą powiązana tylko plus argumenty, które są zdefiniowane w jądrze i dodatek argumentu, który jest potrzebny w najnowszej wersji PySpark.
Whit ten można uruchomić jupyter notebook
, otworzyć stronę główną w przeglądarce i można teraz tworzyć notebooki pomocą tego nowego jądra:
brzmi jak chcesz [Apache Toree] (https://github.com/apache/incubator-toree). Instalacja wymaga jednak trochę wysiłku. –