首页 > 解决方案 > ModuleNotFoundError:AWS Glue 中没有名为“aiohttp”的模块

问题描述

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

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

标签: amazon-web-servicespysparkpython-asyncioaws-glueaiohttp

解决方案


胶水2.0

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

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

官方文档链接列出了所有可用的模块。如果你需要不同的版本或者需要安装一个,可以在上面提到的参数中指定。

胶水 1.0 & 2.0

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

有关更多信息,请参阅官方文档的链接。


推荐阅读