首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有对象的气流分支错误不可迭代

带有对象的气流分支错误不可迭代
EN

Stack Overflow用户
提问于 2020-10-31 02:28:02
回答 1查看 1.8K关注 0票数 1

我正在尝试使BranchPythonOperator工作,但我有以下错误:

'BigQueryInsertJobOperator' object is not iterable

这是我的分公司接线员:

代码语言:javascript
复制
branching = BranchPythonOperator(
        task_id='branching',
        python_callable=return_branch,
        provide_context=True)

这里是我的Python可调用的:

代码语言:javascript
复制
def return_branch(ds, **kwargs):
    execution_year = kwargs['execution_date'].strftime("%Y")
    type = dataset_metadata[f'{execution_year}']['var']
    if type == 'foo':
        return x
    return y

X和y是BigQueryInsertJobOperator:

代码语言:javascript
复制
x = BigQueryInsertJobOperator(
    task_id='x',
    configuration={
        "query": {
            "query": "{% include 'q.sql' %}",
            "use_legacy_sql": False
            }
        },
    dag=dag)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-10-31 07:20:24

我想提到this answer。您的方法return_branch不应该返回操作符。它必须返回操作员的task_id。你会得到这样的东西:

代码语言:javascript
复制
def return_branch(ds, **kwargs):
    next_task_id = "a" # <some kind of logic>

    return next_task_id


branching = BranchPythonOperator(
    task_id="pick_query",
    python_callable=return_branch,
    provide_context=True,
)

option_1 = DummyOperator(task_id="a")
option_2 = DummyOperator(task_id="b")

branching >> [option_1, option_2]
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64617857

复制
相关文章

相似问题

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