apache-spark - Spark-submit找不到本地文件

标签 apache-spark pyspark spark-streaming

我已经编写了一个非常简单的 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/

相关文章:

apache-spark - 开发人员之间是否可以共享/访问hdfs?

scala - Spark-检查点对性能的影响

scala - 无法解决 Spark 作业中的符号拆分问题

apache-spark - 使用 DataFrame.schema.fields.update 时出错

python - 带有额外参数的子类 python 类继承

apache-spark - PySpark isin 函数

scala - 使用 apache spark 和 scala 进行数据预处理

python - Spark 聚合,其中输出列是函数,行是列

python - 在 PyCharm IDE 中添加 spark-csv 包

java - 如何在 apache spark 中加入两个(或更多)流(JavaDStream)