使用 Apache Spark 提交 Python 应用程序

Posted

技术标签:

【中文标题】使用 Apache Spark 提交 Python 应用程序【英文标题】:Submitting Python Application with Apache Spark Submit 【发布时间】:2016-09-03 00:15:08 【问题描述】:

我正在尝试遵循 Apache Spark 文档站点上的示例:https://spark.apache.org/docs/2.0.0-preview/submitting-applications.html

我启动了一个 Spark 独立集群并希望运行示例 Python 应用程序。我在我的 spark-2.0.0-bin-hadoop2.7 目录中并运行了以下命令

./bin/spark-submit \
--master spark://207.184.161.138:7077 \
examples/src/main/python/pi.py \
1000

但是,我得到了错误

jupyter: '/Users/MyName/spark-2.0.0-bin- \
hadoop2.7/examples/src/main/python/pi.py' is not a Jupyter command

这就是我的 bash_profile 的样子

#setting path for Spark
export SPARK_PATH=~/spark-2.0.0-bin-hadoop2.7
export PYSPARK_DRIVER_PYTHON="jupyter"
export PYSPARK_DRIVER_PYTHON_OPTS="notebook"
alias snotebook='$SPARK_PATH/bin/pyspark --master local[2]'

我做错了什么?

【问题讨论】:

在提交之前取消设置 PYSPARK_DRIVER_PYTHONPYSPARK_DRIVER_PYTHON_OPTS 【参考方案1】:

PYSPARK_DRIVER_PYTHONPYSPARK_DRIVER_PYTHON_OPTS 用于在打开 pyspark shell 时运行 ipython/jupyter shell(更多信息请参见How to load IPython shell with PySpark)。

你可以这样设置:

alias snotebook='PYSPARK_DRIVER_PYTHON=jupyter PYSPARK_DRIVER_PYTHON_OPTS=notebook $SPARK_PATH/bin/pyspark --master local[2]'

这样提交时不会干扰pyspark

【讨论】:

【参考方案2】:

在 spark-submit 命令前添加PYSPARK_DRIVER_PYTHON=ipython

例子:

PYSPARK_DRIVER_PYTHON=ipython ./bin/spark-submit \ 
/home/SimpleApp.py

【讨论】:

不错。唯一的问题是如果我想将参数传递给 python 脚本。出于某种原因,Ipython 正在干预,认为他们是为了它。

以上是关于使用 Apache Spark 提交 Python 应用程序的主要内容,如果未能解决你的问题,请参考以下文章