amazon-web-services - ModuleNotFoundError:AWS Glue 中没有名为“aiohttp”的模块
问题描述
我正在使用 AWS 胶水来创建 ETL 工作流,从 API 中获取数据并将其加载到 RDS 中。在 AWS Glue 中,我使用了 pyspark 脚本。在同一个脚本中,我使用了 python 的 'aiohttp' 和 'asyncio' 模块来异步调用我的 API。但是在 AWS 胶水中,它向我抛出了一个错误,即模块未找到唯一的 aiohttp。
我已经尝试过使用不同版本的 aiohttp 模块并在胶水作业中进行了测试,但仍然给我同样的错误。有人可以帮我解决这个话题吗?
解决方案
胶水2.0
AWS Glue 版本 2.0 允许您在作业级别提供额外的 Python 模块或不同版本。您可以将--additional-python-modules
job 参数与逗号分隔的 Python 模块列表一起使用,以添加新模块或更改现有模块的版本。
此外,在该--additional-python-modules
选项中,您可以指定 Python Wheel 模块的 Amazon S3 路径。
此官方文档链接列出了所有可用的模块。如果你需要不同的版本或者需要安装一个,可以在上面提到的参数中指定。
胶水 1.0 & 2.0
您可以压缩 python 库,将其上传为 s3 并将路径指定为--extra-py-files
作业参数。
有关更多信息,请参阅官方文档的链接。
推荐阅读
- android - 来自应用程序的 R 类中未包含的某些库模块的字符串
- node.js - 如何在 Mac 上的 Dropbox 中递归地忽略 node_modules
- python - txt文件中的Python编号段落
- python - xlsx 工作表上的 NLP - 单列
- javascript - vue - 切换状态时变换旋转不会旋转回来
- c# - 我如何更改 Microsoft.ReportViewer.WinForms 中的报告显示
- python - 为什么我的代码将小数检测为不是数值
- javascript - 使用 Jest 和测试库测试元素是否至少聚焦一次
- dbt - `dbt run --select x` 给出错误`Could not find selector named x, expected one of []`
- scala - 为什么 ArrayBuffer 在 RDD 转换后被删除?