繁体   English   中英

如何使用多个 python 文件提交 pyspark 作业?

[英]how to submit pyspark job with multiple python files?

I am figuring out how to submit pyspark job developed using pycharm ide. there are 4 python files and 1 python file is main python file which is submitted with pyspark job but rest other 3 files are imported in main python file, but I am not able要了解我的 python 文件是否都在 s3 bukcet 中可用,spark 作业如何能够引用那些未使用 pyspark 提交命令提交的文件。 例如:文件 1、文件 2、文件 3、文件 4

spark-submit --master local  --driver-memory 2g --executor-memory  2g   s3_path\file1.py

file2、file3、file4 在 file1 中导入,但我想知道 spark 如何引用其他 python 文件。

创建一个 package( egg文件)

使用setuptools将您的文件夹创建到可导入的 package 中。假设您在文件夹mypackage下有多个文件,如下所示:

mypackage
|-- file1.py
|-- file2.py
|-- ...
`-- __init__.py

使用setuptools你可以创建一个 egg 文件(这是一个压缩版本的包)

egg文件传递给spark-submit

spark-submit --pyfiles mypackage.egg <rest of the args>

在 Spark 应用程序中导入包的内容


from mypackage.file1 import somefunction
somefunction()

这里还有一件更重要的事情,如果你有访问/能力 pip 安装东西然后而不是使用egg创建一个wheel文件并运行pip install s3_path/<wheel-file> ,它将安装 package 并将你的可运行脚本复制到/usr/local/bin/或等效路径立即让您的生活更轻松。

请使用以下配置

--py-files PY_FILES         Comma-separated list of .zip, .egg, or .py files to place
                            on the PYTHONPATH for Python apps.

所以你的命令将如下所示

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

一个重要的注意事项是文件路径之间不要有空格

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM