这里解释了如何在 Pycharm 中使用参数运行脚本: Debugging with PyCharm terminal arguments
我想按如下方式运行我的脚本:
输入1文件.py输入2
Spark-submit --jars Spark-Assembly-1.5.2.2.3.4.7-4-hadoop2.7.1.2.3.4.7-4.jar,spark-streaming-kafka- assembly_2.10-1.6.1.jar arg1 arg2我该怎么做? 谢谢!
最佳答案
我不是 100% 确定我了解您通常如何运行该脚本,但假设您有一个名为 script.py 的脚本,您希望接收 2 个参数 arg1、arg2 以及当您使用 Spark-submit 从命令行运行时您有 2 个选项 opt1 和 opt2 运行它,如下所示:
spark-submit --opt1 opt1 --opt2 opt2 script.py arg1 arg2
如果我对你的情况理解正确的话,这是:
spark-submit --jars spark-assembly-1.5.2.2.3.4.7-4-hadoop2.7.1.2.3.4.7-4.jar,spark-streaming-kafka-assembly_2.10-1.6.1.jar file.py arg1 arg2
我们还假设当您从命令行执行此操作时,所有内容都会运行(如果没有,请确保首先运行)。
** 定义环境变量 **
此步骤的目标是启用如下运行:
python script.py arg1 arg2
为此,您需要定义适当的环境变量:
PYTHONPATH
应包含 python 和 py4j 定义:
$SPARK_HOME/python/:$SPARK_HOME/python/lib/py4j-XXX-src.zip
- $SPARK_HOME 是您安装 Spark 的位置(例如/opt/spark)。在 Windows 中,您可能已将其定义为 %SPARK_HOME%(或者您可以直接将其放置)。
- py4j 路径中的 XXX 取决于您的版本。
- 例如,对于 Spark 2.0.1,这将为 py4j-0.10.3-src.zip。
- 对于 Spark 1.6.1,我认为这是 py4j-0.9-src.zip,但您应该检查一下。
PYSPARK_SUBMIT_ARGS
这告诉 Spark 如何加载所有内容。它应该包括spark-submit 的所有参数,最后是“pyspark-shell”。 在您的情况下,这可能具有以下值:
--jars spark-assembly-1.5.2.2.3.4.7-4-hadoop2.7.1.2.3.4.7-4.jar,spark-streaming-kafka-assembly_2.10-1.6.1 pyspark-shell
配置运行配置
现在您可以像任何 python 脚本一样配置它。只需确保脚本参数中有参数即可
关于java - 使用预参数 Spark 进行 Pycharm 调试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41332991/