Jupyter Notebook仅在Spark上本地运行

use*_*711 6 apache-spark jupyter

我正在尝试jupyter-notebook (v4.2.2)远程使用a spark cluster (v2.0),但是当我运行以下命令时它不会在spark上运行但只在本地运行:

PYSPARK_DRIVER_PYTHON=jupyter PYSPARK_DRIVER_PYTHON_OPTS="notebook --no-browser --port=7777" pyspark --master spark://**spark_master_hostname**:7077
Run Code Online (Sandbox Code Playgroud)

当我pyspark单独使用相同--master argument的程序运行时,该过程显示"Running Applications"为火花簇很好.

pyspark --master spark://**spark_master_hostname**:7077
Run Code Online (Sandbox Code Playgroud)

这几乎就好像pyspark没有在前者中运行.第一个命令是否有问题阻止jupyter在spark集群上运行或者在spark集群上运行笔记本的更好方法?

Art*_*r I 1

看起来您想要加载 IPython shell,而不是 IPython Notebook 并通过命令行使用 PySpark?

IMO Jupiter UI 是使用笔记本电脑更方便的方式。

您可以运行 jupyter 服务器:

jupyter notebook
Run Code Online (Sandbox Code Playgroud)

然后(使用 jupyter UI)启动新的 Python2 内核。在打开的笔记本中创建 SparkContext,其配置指向您的 Spark 集群:

from pyspark import SparkContext, SparkConf
conf = SparkConf()
conf.setMaster('spark://**spark_master_hostname**:7077')
conf.setAppName('some-app-name')
sc = SparkContext(conf=conf)
Run Code Online (Sandbox Code Playgroud)

现在您已经在 Spark 集群上启动了 pyspark 应用程序,您可以通过创建的 SparkContext 与其进行交互。IE:

def mod(x):
    import numpy as np
    return (x, np.mod(x, 2))
rdd = sc.parallelize(range(1000)).map(mod).take(10)
print rdd
Run Code Online (Sandbox Code Playgroud)

上面的代码将被远程计算。