我有以下内容:
EXEC_DATE1 = '{{ macros.ds_add(ds, 1) }}'
EXEC_DATE2 = '{{ execution_date }}'
Run Code Online (Sandbox Code Playgroud)
我想创建如下所示的路径变量:
path1 = EXEC_DATE1 + '/' + HH:MM (of EXEC_DATE1)
path2 = EXEC_DATE2 + '/' + HH:MM (of EXEC_DATE2)
Run Code Online (Sandbox Code Playgroud)
最终它应该是这样的:
2018-09-16/10:41
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?
我试过:
EXEC_DATE = '{{ execution_date }}'
EXEC_DATE = EXEC_DATE.strftime('%Y-%m-%d/%H:%M')
Run Code Online (Sandbox Code Playgroud)
但它给出了:
'str' object has no attribute 'strftime'
Run Code Online (Sandbox Code Playgroud)
编辑: 我的代码:
EXEC_TIMESTAMP_PATH = "{{ execution_date.strftime('%Y-%m-%d/%H:%M') }}"
EXEC_DATE = "{{ execution_date.strftime('%H:%M') }}"
EXEC_TIME = "{{ mexecution_date.strftime('%Y-%m-%d') }}"
task3_op= BashOperator(
task_id='task3',
params={'EXEC_DATE':EXEC_DATE, 'EXEC_TIME':EXEC_TIME},
bash_command="""python3 script.py '{{ var.value.task3_variable }}' '{{ params.EXEC_DATE }}' '{{ params.EXEC_TIME }}' 'file.json'""",
dag=dag)
Run Code Online (Sandbox Code Playgroud)
这是行不通的。参数不会被渲染。
您需要按如下方式进行:
EXEC_DATE = "{{ execution_date.strftime('%Y-%m-%d/%H:%M') }}"
Run Code Online (Sandbox Code Playgroud)
应该strftime
用在花括号内。
如果您需要 next_execution 日期,请使用以下命令:
EXEC_DATE = "{{ next_execution_date.strftime('%Y-%m-%d/%H:%M') }}"
Run Code Online (Sandbox Code Playgroud)
如果您只想添加timedelta
:
EXEC_DATE = "{{ (execution_date + macros.timedelta(days=1)).strftime('%Y-%m-%d/%H:%M') }}"
Run Code Online (Sandbox Code Playgroud)
您的代码可以如下所示:
EXEC_DATE = "{{ execution_date.strftime('%Y-%m-%d/%H:%M') }}"
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
18393 次 |
最近记录: |