Spark-submit无法找到本地文件

时间:2017-10-16 14:05:41

标签: apache-spark pyspark spark-streaming

我已经编写了一个非常简单的python脚本来测试我的火花流式传输的想法,并计划在我的本地计算机上运行它来乱七八糟。这是命令行:

spark-submit spark_streaming.py localhost 9999

但终端给我一个错误:

Error executing Jupyter command '<the/spark_streaming.py/file/path>': [Errno 2] No such file or directory

我不知道为什么会这样,我确定.py文件确实存在。

编辑:使用python代替spark-submit

运行它没有问题

此外,.bashrc文件中添加的行:

export PATH="/usr/local/spark/bin:$PATH"
export PYSPARK_DRIVER_PYTHON=jupyter
export PYSPARK_DRIVER_PYTHON_OPTS='notebook'
export SPARK_LOCAL_IP=localhost

1 个答案:

答案 0 :(得分:2)

假设您希望spark-submit YARN位于/home/user/scripts/spark_streaming.py的Python脚本,正确的语法如下:

spark-submit --master yarn --deploy-mode client /home/user/scripts/spark_streaming.py

您可以交换各种标志的顺序,但脚本本身必须在最后;如果您的脚本接受参数,则应遵循脚本名称(例如,请参阅this example以计算10位十进制数字的pi)。

如果要在本地执行2个内核,则应使用--master local[2] - 对所有可用的本地内核使用--master local[*](在这两种情况下都不会deploy-mode标记)。

查看docs以获取更多信息(尽管他们在pyspark演示中相当差)。

PS提及Jupyter以及错误消息中显示的路径非常令人费解......

更新:似乎PYSPARK_DRIVER_PYTHON=jupyter弄乱了所有内容,通过Jupyter汇集执行(这里不可取,这可能解释了奇怪的错误消息)。尝试修改.bashrc中的环境变量,如下所示:

export SPARK_HOME="/usr/local/spark"  # do not include /bin
export PYSPARK_PYTHON=python
export PYSPARK_DRIVER_PYTHON=python
export PYSPARK_DRIVER_PYTHON_OPTS=""

source .bashrc