簡體   English   中英

如何在Jupyter Notebook啟動時運行自定義Python腳本(啟動Spark)?

[英]How to run custom Python script on Jupyter Notebook launch (to boot Spark)?

我找到了幾個關於如何配置IPython Notebook以使用PySpark加載Spark Context變量sc教程(如下所示: http ://ramhiser.com/2015/02/01/configuring-ipython-notebook-support-for-pyspark/) 。

問題是,由於現在我們使用Jupyter Notebook而不是IPython Notebook,我們無法創建一個設置腳本來加載Spark Context變量,就像我們使用IPython一樣(它應該位於~/.ipython/profile_pyspark/startup/00-pyspark-setup.py )。

問題是:在啟動時將執行腳本00-pyspark-setup.py Jupyter Notebook有哪些配置?

編輯

最初的答案應該仍然有效,但它很笨拙,我們現在使用以下方法使用內置變量的PySpark:

export PYSPARK_DRIVER_PYTHON=jupyter
export PYSPARK_DRIVER_PYTHON_OPTS="notebook"

然后像平常一樣直接運行PySpark,但是通過上面的變量設置,它啟動jupyter筆記本而不是shell:

cd path/to/spark
bin/pyspark --master local[*]  # Change to use standalone/mesos/yarn master and add any spark config

如果你開始一個新的筆記本,你會發現Spark為你設置。 如果要匹配您的環境,可以向Juopyter添加其他選項,例如:

export PYSPARK_DRIVER_PYTHON_OPTS="notebook --ip='*' --no-browser"

原始答案

您仍然可以使用相同的初始步驟設置內容,即使用ipython profile create pyspark創建配置ipython profile create pyspark ,並將啟動腳本放在$(ipython profile locate pyspark)/startup/

接下來,要使它在Jupyter筆記本中可用,您必須通過創建文件$(ipython locate)/kernels/pyspark/kernel.json來指定使用該配置文件的內核。 這就是我的樣子:

{
  "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"
  }
}

重要的是在argv部分。 env部分中的信息由我使用的啟動腳本獲取:

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'))

正如您所看到的,它與您鏈接的那個非常相似,只是加上內核中定義的參數,並添加了最新版PySpark中需要的pyspark-shell參數。

在這個,你可以運行jupyter notebook ,在瀏覽器中打開主頁,你現在可以使用這個新內核創建筆記本:

創建新的pyspark筆記本

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM