如何在ETL脚本中导入引用文件?Glue作业配置文件调用问题
解决AWS Glue作业中引用配置文件的ImportError问题
我来帮你搞定这个问题!在AWS Glue里直接import通过「Referenced files path」指定的Python文件,确实会遇到这个报错——因为Glue默认不会把引用文件的存放路径添加到Python的模块搜索路径中,得我们手动处理一下。
下面是具体的解决步骤和代码示例:
步骤说明
- 首先,获取Glue作业的临时工作目录:Glue会把「Referenced files path」里的文件下载到环境变量
GLUE_WORK_DIR指向的临时路径中 - 将这个临时路径添加到Python的
sys.path里,让Python能找到我们的配置模块 - 之后就可以正常import配置文件了
代码示例
import os import sys # 获取Glue作业的临时工作目录 glue_work_dir = os.environ.get('GLUE_WORK_DIR') if glue_work_dir: # 将临时目录添加到Python模块搜索路径 sys.path.append(glue_work_dir) # 现在可以成功导入configuration模块了 from configuration import *
额外注意事项
- 确认「Referenced files path」的配置正确:如果你的
configuration.py存放在S3路径s3://your-bucket/config/下,那这里应该填写s3://your-bucket/config/configuration.py(单个文件)或者整个目录路径(如果有多个引用文件) - 如果你的配置文件不是Python模块(比如是JSON/YAML格式),不需要import,直接用文件读取方法即可,示例:
import json with open('configuration.json', 'r') as config_file: config_data = json.load(config_file)
内容的提问来源于stack exchange,提问作者chris.mclennon
相关产品推荐
相关产品推荐

