ModuleNotFoundError: No module named 'aiohttp' in AWS Glue

ModuleNotFoundError: No module named 'aiohttp' in AWS Glue

我正在使用 AWS glue 创建 ETL 工作流,我从 API 中获取数据并将其加载到 RDS 中。在 AWS Glue 中,我使用了 pyspark 脚本。在同一脚本中,我使用 python 的 'aiohttp' 和 'asyncio' 模块异步调用我的 API。但是在 AWS glue 中,它抛出了一个错误,即模块未找到唯一的 aiohttp。

我已经尝试使用不同版本的 aiohttp 模块并在胶水作业中进行了测试,但仍然抛出同样的错误。有人可以帮我解决这个问题吗?

胶水2.0

AWS Glue 2.0 版允许您在作业级别提供额外的 Python 模块或不同版本。您可以使用 --additional-python-modules 作业参数和以逗号分隔的 Python 模块列表来添加新模块或更改现有模块的版本。

此外,在 --additional-python-modules 选项中,您可以指定 Python wheel 模块的 Amazon S3 路径。

link to official documentation 列出了所有可用的模块。如果你需要不同的版本或者需要安装一个,可以在上面提到的参数中指定。

胶水 1.0 & 2.0

您可以压缩 python 库,将其上传到 s3 并将路径指定为 --extra-py-files 作业参数。

有关详细信息,请参阅 link to official documentation