java - 使用预参数 Spark 进行 Pycharm 调试

标签 java python apache-spark pycharm

这里解释了如何在 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/

相关文章:

java.util.zip.ZipException : duplicate entry error

python - 创建 Azure 事件网格主题错误 - "does not have authorization to perform action"

apache-spark - 如何终止正在运行的 Spark 应用程序?

scala - Spark-行值之和

java - 抛出异常是否是处理 Java 反射 API 中抛出的所有异常的好方法?

java - 加密 - 解密时数据错误

在 Java 中使用 filewriter 打开文件时出现 java.io.FileNotFoundException

python - Python 中的数据包队列?

python - 如何判断两个元素是否属于同一个列表

apache-spark - 如何理解 Parquet 文件名称的每个部分