首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在execution_date中使用op_kwargs的气流Python脚本

在execution_date中使用op_kwargs的气流Python脚本
EN

Stack Overflow用户
提问于 2018-04-30 03:54:40
回答 1查看 28.2K关注 0票数 18

在这个应答https://stackoverflow.com/a/41730510/4200352的帮助下,我正在执行一个python文件。

我使用PythonOperator,并试图将执行日期作为传递给脚本的参数。

我相信我可以通过kwargs的“执行日期”来访问它。

下面是失败的

DAG.py

代码语言:javascript
复制
from airflow import DAG
from airflow.operators.python_operator import PythonOperator
from datetime import datetime, timedelta

import sys
import os
sys.path.append(os.path.abspath("/home/glsam/OmegaAPI/airflow/scripts/PyPer_ogi_simple"))
from update_benchmarks import *


default_args = {
    'owner': 'airflow',
    'depends_on_past': False,
    'start_date': datetime(2018, 4, 23),
    'email': ['airflow@example.com'],
    'email_on_failure': False,
    'email_on_retry': False,
    'retries': 1,
    'retry_delay': timedelta(minutes=5),
}

dag = DAG('run_pyPer', default_args=default_args)

update_BM_G027 = PythonOperator(
    task_id='update_BM_G027',
    python_callable=update_bmk,
    dag=dag,
    op_kwargs={
        'bmk_code': 'G027',
        'is_hedged': False,
        'from_date': kwargs['execution_date'],
    })

我是否需要使用这个答案来获得日期,然后将其用于任务呢?https://stackoverflow.com/a/36754930/4200352

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-04-30 06:34:47

这确实有点令人困惑,而且没有很好的记录。

您已经在使用PythonOperator了。

现在只需添加选项

代码语言:javascript
复制
provide_context=True,

并使用指针扩展您的可调用性。

代码语言:javascript
复制
update_bmk(bmk_code, is_hedged, **context)

现在,在您的函数中,您可以访问有关任务的所有信息,包括如下所示的执行日期:

代码语言:javascript
复制
task_instance = context['task_instance']
execution_date = context['execution_date']

若要查看上下文中项的完整引用,请参见https://airflow.apache.org/docs/apache-airflow/stable/macros-ref.html

这些是宏的文档,但您可以在上下文字典中使用这些项。

票数 47
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50093718

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档