使用多个python文件和一个配置文件提交pyspark作业

Jay*_*Jay 6 python apache-spark pyspark spark-submit

我有 4 个 python 脚本和 1 个 .txt 配置文件。在 4 个 Python 文件中,其中一个文件具有 Spark 应用程序的入口点,并且还从其他 Python 文件导入函数。但配置文件是在其他一些 python 文件中导入的,该文件不是 Spark 应用程序的入口点。我想在 pyspark 中编写 Spark Submit 命令,但是当配置文件不是 python 文件而是文本文件或 ini 文件时,我不确定如何使用 Spark Submit 命令沿配置文件提供多个文件。

用于演示:4 个 python 文件: file1.py 、 file2.py 、 file3.py 。文件4.py

1个配置文件:conf.txt

file1.py:这个文件有spark会话并调用所有其他python文件。file3.py:这个python文件正在读取conf.txt。

我想通过 Spark Submit 提供所有这些文件,但不确定 command 。我确定的一种解决方案是:

spark-submit --master local  --driver-memory 2g --executor-memory  2g --py-files s3_path\file2.py,s3_path\file3.py,s3_path\file4.py  s3_path\file1.py
Run Code Online (Sandbox Code Playgroud)

但对于上面的 Spark Submit 我不知道如何传递 conf.txt 。

Gio*_*ous 2

您可以使用--files来提供要随应用程序上传的文件列表。


例如,

spark-submit file1.py \
    --master local \
    --driver-memory 2g \
    --executor-memory 2g \
    --py-files file2.py,file3.py,file4.py \
    --files conf.txt
Run Code Online (Sandbox Code Playgroud)

如果您的文件位于 S3 实例中,您可以尝试以下操作:

spark-submit s3://path/to/file1.py \
    --master local \
    --driver-memory 2g \
    --executor-memory 2g \
    --py-files s3://path/to/file2.py,s3://path/to/file3.py,s3://path/to/file4.py \
    --files s3://path/to/conf.txt
Run Code Online (Sandbox Code Playgroud)