1

我正在尝试设置将数据加载到 RDS PostgreSQL 数据库中的每日 AWS Glue 作业。但是我需要在将数据加载到它们之前截断我的表,因为这些作业适用于整个数据集。

为此,我正在实施此处给出的解决方案:https ://stackoverflow.com/a/50984173/11952393 。

它使用纯 Python 库 pg8000。我遵循这个 SO 中的指导方针,下载库 tar,解压缩,添加空__init.py__文件,压缩整个想法,将 zip 文件上传到 S3,并将 S3 URL 作为 Python 库添加到 AWS Glue 作业配置中。

当我运行该作业时,似乎正确导入了 pg8000 模块。但后来我收到以下错误:

AttributeError: module 'pg8000' has no attribute 'connect'

我肯定做错了什么......但找不到什么。欢迎任何建设性的反馈!

4

2 回答 2

0

添加

install_requires = ['pg8000==1.12.5']

_setup.py生成.egg文件的文件中

您应该能够访问库。

于 2019-08-21T16:39:54.593 回答
0

这就是它对我有用的原因。

  1. 在单独的位置执行 pg8000 包的 pip 安装

    pip install -t /tmp/ pg8000

  2. 您会在 /tmp 目录中看到 2 个目录

    pg8000
    scramp
    
  3. 将以上2个目录分别压缩

    cd /tmp/
    zip -r pg8000.zip pg8000/
    zip -r scramp.zip scramp/
    
  4. 将这 2 个 zip 文件上传到 S3 位置

  5. Python Library Path在创建作业或开发端点时,在字段中提及这 2 个 zip 文件

s3://<bucket>/<prefix>/pg8000.zip,s3://<bucket>/<prefix>/scramp.zip
于 2020-06-03T15:38:48.180 回答