gpt4 book ai didi

python - 如何为 AWS 粘合作业使用额外文件

转载 作者:行者123 更新时间:2023-12-04 02:37:04 26 4
gpt4 key购买 nike

我有一个用python编写的ETL作业,它由多个具有以下目录结构的脚本组成;

my_etl_job
|
|--services
| |
| |-- __init__.py
| |-- dynamoDB_service.py
|
|-- __init__.py
|-- main.py
|-- logger.py
main.py是从上述目录导入其他脚本的入口点脚本。上传到由 dev 端点创建的 ETL 集群后,上面的代码在 dev-endpoint 上运行得非常好。因为现在我想在生产中运行它,所以我想为它创建一个合适的胶水作业。但是当我压缩整个目录时 my_etl_job.zip格式,将其上传到 artifacts s3 存储桶中,并将 .zip 文件位置指定到脚本位置,如下所示
s3://<bucket_name>/etl_jobs/my_etl_job.zip

这是我在胶水作业 UI 仪表板上看到的代码;
PK
���P__init__.pyUX�'�^"�^A��)PK#7�P logger.pyUX��^1��^A��)]�Mk�0����a�&v+���A�B���`x����q��} ...AND ALLOT MORE...

似乎胶水作业不接受 .zip 格式?如果是,那么我应该使用什么压缩格式?

更新:
我检查了胶水作业可以选择接收额外的文件 Referenced files path其中我提供了上述文件所有路径的逗号分隔列表,并将 script_location 更改为仅引用 main.py文件路径。但这也没有奏效。胶水作业抛出错误找不到模块记录器(我在 logger.py 文件中定义了这个模块)

最佳答案

您必须将 zip 文件作为额外的 python lib 传递,或者为代码包构建一个 wheel 包并将 zip 或 wheel 上传到 s3,提供与额外的 python lib 选项相同的路径

注意:将您的主要功能写在胶水控制台中,从 zipped/wheel 依赖项中引用所需的功能,您的脚本位置永远不应该是 zip 文件

https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-python-libraries.html

关于python - 如何为 AWS 粘合作业使用额外文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61217834/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com