在vs代码内部人员中进行调试时,如何使spark-submit参数紧接在“ spark-submit”之后

时间:2019-05-31 18:21:24

标签: python apache-spark debugging visual-studio-code spark-submit

我正在远程ssh会话中(vs代码内部人员)在vs代码中调试Spark作业(pyspark)

在远程ssh上使用vs代码编写程序1.35.0。

这是我的launch.json

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Python: IDI Spark Training",
            "type": "python",
            "request": "launch",
            "args": ["--queue", "ds-others"],
            "linux": {
                "pythonPath": "/bin/spark-submit"
            },

            "program": "${file}",
        }

    ]
}

要使我的Spark集群执行作业,我需要将特定的队列名称传递给spark-submit命令。当我手动执行作业时,我使用

spark-submit --queue ds-others training.py

在我的终端中执行时效果很好

基于上面的launch.json,当我启动调试器时,调试控制台将执行:

cd /hadoop/met_scripts/datascience/dnaanalytics_us_group/us_grp_mo_idi_fwa ; env PYTHONIOENCODING=UTF-8 PYTHONUNBUFFERED=1 /bin/spark-submit /home/nokyere/.vscode-server-insiders/extensions/ms-python.python-2019.5.17517/pythonFiles/ptvsd_launcher.py --default --client --host localhost --port 40845 /hadoop/met_scripts/datascience/dnaanalytics_us_group/us_grp_mo_idi_fwa/python/training.py --queue ds-others

所以看起来vs代码在spark-submit之后立即添加了自己的参数,但是我指定的参数仅在python脚本通过后才通过。这导致我的作业无法运行,因此调试不起作用。我没有收到错误消息。我只知道该工作尚未开始,因为vs代码如何添加运行该工作所需的参数。当我通过spark-submit提交作业并在传递脚本名称后传递参数时,会观察到相同的行为。但是当我通过脚本之前的安排时,就可以了。

我想知道为什么vs代码在脚本名称后传递用户指定的参数,并且如果有什么我可以更改VS Code传递参数的顺序。我需要在脚本名称之前添加“ --queue ds-others”。谢谢。

0 个答案:

没有答案