使用SqlToS3Operator时遇pandas缺失,MWAA配置后仍报错
解决MWAA中SqlToS3Operator的pandas依赖报错问题
问题重现
使用SqlToS3Operator添加任务时触发以下报错:
ModuleNotFoundError: No module name 'pandas' ... trace... Exception: pandas library not installed. run: pip install 'apache-airflow-providers-common-sql[pandas]'
涉事任务定义:
get_events = SqlToS3Operator( task_id='get_events', ... query='select columns from event where greatest(created_at, updated_at) > {{ ts }}', dag=dag, )
已配置的requirements.txt内容:
apache-airflow>=2.9.0 apache-airflow-providers-amazon>=8.23.0 apache-airflow-providers-common-sql>=1.11.1 pandas>=2.1.4
已更新MWAA配置并重启环境,但报错依旧,其余DAG可正常运行。
解决步骤
修改requirements.txt的依赖声明
将apache-airflow-providers-common-sql>=1.11.1替换为apache-airflow-providers-common-sql[pandas]>=1.11.1。
原因:apache-airflow-providers-common-sql的pandas支持属于额外依赖,需要显式声明[pandas]后缀,MWAA才会自动安装该包关联的pandas依赖(即使单独声明pandas,也可能因包的依赖逻辑导致未正确关联)。修改后的
requirements.txt:apache-airflow>=2.9.0 apache-airflow-providers-amazon>=8.23.0 apache-airflow-providers-common-sql[pandas]>=1.11.1 pandas>=2.1.4重新上传并触发环境更新
- 将修改后的
requirements.txt上传到MWAA配置中指定的S3依赖路径,确保覆盖旧文件。 - 再次触发MWAA环境重启,等待10-15分钟让环境完成依赖安装和初始化。
- 将修改后的
验证依赖安装状态
查看MWAA的环境日志(在CloudWatch中),确认apache-airflow-providers-common-sql[pandas]和pandas均成功安装,无报错信息。
额外排查点
- 确认S3存储桶中
requirements.txt的版本是最新的,避免因S3缓存导致旧文件被读取。 - 检查MWAA执行角色是否拥有读取该S3路径文件的权限。
- 如果问题持续,可尝试移除单独的
pandas>=2.1.4声明,仅保留apache-airflow-providers-common-sql[pandas]>=1.11.1,让包管理器自动处理兼容的pandas版本。
内容的提问来源于stack exchange,提问作者Aaron Luman
相关产品推荐
相关产品推荐

