
AWS Glue 4.0 官方镜像(glue_libs_4.0.0_image_01)目前不包含 awsgluedq 模块,导致 ImportError: No module named 'awsgluedq',根本原因是该模块尚未集成到 Glue 4.x 运行时中,需降级至 Glue 3.x 镜像或手动注入依赖。
aws glue 4.0 官方镜像(glue_libs_4.0.0_image_01)目前不包含 `awsgluedq` 模块,导致 `importerror: no module named 'awsgluedq'`,根本原因是该模块尚未集成到 glue 4.x 运行时中,需降级至 glue 3.x 镜像或手动注入依赖。
awsgluedq 是 AWS Glue Data Quality(DQ)功能的核心 Python 包,提供 EvaluateDataQuality 等关键转换器,用于定义和执行数据质量规则(如完整性、唯一性、一致性校验)。虽然官方文档指出“Glue 3.0 及以上版本支持 Data Quality”,但实际实现存在版本偏差:Glue 3.x 运行时(如 glue_libs_3.0.0_image_01)已内置 awsgluedq,而 Glue 4.0 镜像(截至 glue_libs_4.0.0_image_01)仍未包含该模块——这一问题已在 aws-glue-libs GitHub Issue #200 中被确认为已知限制。
✅ 推荐解决方案:切换至 Glue 3.x 兼容镜像
将 Docker 命令中的镜像标签从 glue_libs_4.0.0_image_01-arm64 替换为 Glue 3.x 的稳定版本,例如:
docker run -it \ -v ~/.aws:/home/glue_user/.aws \ -v $WORKSPACE_LOCATION:/home/glue_user/workspace/ \ -e AWS_PROFILE=$PROFILE_NAME \ -e DISABLE_SSL=true \ --rm -p 4040:4040 -p 18080:18080 \ --name glue_spark_submit \ amazon/aws-glue-libs:glue_libs_3.0.0_image_01-arm64 \ spark-submit /home/glue_user/workspace/src/$SCRIPT_FILE_NAME
⚠️ 注意事项:
- Glue 3.x 镜像默认基于 Spark 3.3 + Python 3.9,与 Glue 4.x(Spark 3.3 + Python 3.11)的运行时环境略有差异,请确保您的脚本兼容 Python 3.9;
- 若必须使用 Glue 4.x(例如依赖其新增的 Iceberg 或 Delta Lake 支持),目前无官方支持的
awsgluedq方案;社区尝试通过pip install awsgluedq手动安装通常失败,因其强耦合 Glue 运行时底层类路径与 Spark UDF 注册机制,非白名单依赖无法被 Glue Context 正确加载; - 生产环境建议以 AWS Glue 托管作业(而非本地 Docker)运行 DQ 任务,可直接选用 Glue 3.0 或 4.0 版本(注意:Glue 控制台中选择 Glue version 3.0 才能启用 Data Quality 节点与
awsgluedqAPI)。
? 总结:ModuleNotFoundError: No module named 'awsgluedq' 并非代码或配置错误,而是 Glue 4.0 镜像的功能缺失。务实做法是优先采用 Glue 3.x 运行时完成数据质量校验;长期可关注 aws-glue-libs 仓库更新 或 AWS 官方公告,待 awsgluedq 正式支持 Glue 4.x 后再升级。










