我已经编写了一个非常简单的 python 脚本来测试我的 Spark 流想法,并计划在我的本地计算机上运行它来稍微搞一下。这是命令行:
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
最佳答案
假设您想要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=""
和源.bashrc
。
关于apache-spark - Spark-submit找不到本地文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46772280/