Python 访问修改后的气流变量作为气流中S3传感器的自定义参数
看看我能不能解释一下这件事 看,我从客户那里收到的S3文件格式不好。例如,日期以低破折号显示,如“2017年7月10日” 因为我想访问它们以便能够下载它们,所以首先我有一个任务,那就是气流中的S3传感器。看起来是这样的:Python 访问修改后的气流变量作为气流中S3传感器的自定义参数,python,airflow,Python,Airflow,看看我能不能解释一下这件事 看,我从客户那里收到的S3文件格式不好。例如,日期以低破折号显示,如“2017年7月10日” 因为我想访问它们以便能够下载它们,所以首先我有一个任务,那就是气流中的S3传感器。看起来是这样的: xxx = S3KeySensor( task_id='task_name', bucket_key=BUCKET_KEY, wildcard_match=True, params={'yesterday_ds_formatted': ????}
xxx = S3KeySensor(
task_id='task_name',
bucket_key=BUCKET_KEY,
wildcard_match=True,
params={'yesterday_ds_formatted': ????},
provide_context=True,
bucket_name=BUCKET_NAME,
s3_conn_id=S3_CONN_ID,
timeout=18 * 60 * 60,
poke_interval=120,
dag=dag)
在Airflow控制台的Variables部分中,我有一个bucket_键和模板变量{{Dayed_ds_formatted}
e、 g.:'folder1/folder2/folder3/blablabla-{{params.dayed\u ds_formatted}}.*.csv
我需要修改模板变量或其他东西,以便它获取{{昨天{uds}},并用“{uds}”替换“-”
伙计们,我该怎么做?我无法使它工作。。。
我在设置参数时尝试调用自定义python函数,但是我无法访问“ds”,即使使用kwargs也不行。可以说,我似乎无法事先访问模板变量
谢谢 如果我理解正确,您希望对
bucket\u key
参数使用jinja模板,但S3KeySensor不支持
这样做的一个简单方法是从S3KeySensor
中对自定义传感器进行子分类,如下所示:
TemplatedS3KeySensor(S3KeySensor):
template_fields = ('bucket_key',)