AWS Glue 4.0中Pandas无法导入:报_bz2模块缺失错误求助
解决AWS Glue 4.0中导入Pandas报
_bz2模块缺失的问题 问题原因
AWS Glue 4.0基于Python 3.10构建,默认运行环境未预装_bz2模块的系统级依赖;而Glue 3.0基于Python 3.7,该依赖已包含在默认环境中,因此出现版本间的功能差异。
解决方案
方案1:通过作业附加参数安装依赖
在Glue作业的作业参数配置中添加以下参数:
- 参数键:
--additional-python-modules - 参数值:
pandas,bz2file
(若需指定版本,可写成pandas==1.5.3,bz2file==0.98)
Glue会自动下载并安装这些依赖,无需手动处理环境配置。
方案2:脚本内手动安装依赖(临时测试场景)
在作业脚本开头添加以下代码,先补全缺失依赖再导入Pandas:
import subprocess import sys # 更新pip并安装bz2file subprocess.check_call([sys.executable, "-m", "pip", "install", "--upgrade", "pip"]) subprocess.check_call([sys.executable, "-m", "pip", "install", "bz2file"]) # 导入Pandas import pandas as pd
方案3:自定义Glue镜像(长期稳定场景)
基于官方Glue 4.0镜像构建包含libbz2-dev依赖的自定义镜像,步骤如下:
- 创建Dockerfile:
FROM amazon/aws-glue-libs:glue_libs_4.0.0_image_01 RUN apt-get update && apt-get install -y libbz2-dev RUN pip install pandas
- 构建镜像并推送至ECR仓库
- 在Glue作业配置中选择自定义镜像运行
注意事项
- 使用附加模块时,需确保作业的IAM角色拥有S3访问权限(Glue会将依赖包临时存储在默认S3桶中)
- 自定义镜像需遵循AWS Glue官方规范配置相关参数
内容的提问来源于stack exchange,提问作者Sahil Puri
相关产品推荐
相关产品推荐

