每次我从 Python 库路径调用 .egg 时,AWS Glue Job 都会崩溃



我已经在本地运行了我的Python脚本,它可以工作。我打算与PostgreSQL数据库建立简单的连接并执行查询。为此,我需要导入以下python模块:

进口大熊猫作为PD import pandas.io.sql as psql 导入肉毒杆菌3 将 psycopg2 导入为 PG

前三个,AWS Glue Job 已经可用。psycopg2 必须作为 .egg 文件导入,如 https://www.helicaltech.com/external-python-libraries-aws-glue-job/所示,稍后在 S3 存储桶中可用。

因此,我使用简单的脚本创建了 AWS Glue 作业,并将 .egg 文件添加为我的 Python 库路径。当代码运行时,它会识别前三个模块。后者成功打开 .egg 文件。但是,当它到达init.py 文件时,它会崩溃,它看到的第一件事是:

从psycopg2._psycopg导入(...

我做错了什么?init.py 应该为空吗?我尝试过其他库,它总是在init的第一行崩溃.py

AWS glue 不支持 egg 文件。而是为您要使用的 python 库创建一个 zip 文件。正如 AWS Glue 所记录的那样:

除非库包含在单个.py文件中,否则应将其打包在.zip存档中

此外,AWS Glue 仅支持纯 python 模块。请参考 AWS 文档中的以下引文

您可以将 Python 扩展模块和库与 AWS Glue 结合使用 ETL脚本,只要它们是用纯Python编写的。C 库 例如熊猫目前不支持,也不支持熊猫 用其他语言编写的扩展。

参考 : 将 python 库与 AWS Glue 结合使用

最新更新