首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >MWAA气流2.2.2 'DAG‘对象没有属性'update_relative’

MWAA气流2.2.2 'DAG‘对象没有属性'update_relative’
EN

Stack Overflow用户
提问于 2022-02-22 21:39:10
回答 1查看 6.7K关注 0票数 5

因此,我将DAGs从气流版本1.12.15升级到2.2.2,并将python的级别从3.8降至3.7 (因为MWAA不支持python 3.8)。DAG在以前的设置上运行良好,但在MWAA设置上显示了此错误:

代码语言:javascript
运行
复制
Broken DAG: [/usr/local/airflow/dags/google_analytics_import.py] Traceback (most recent call last):
  File "/usr/local/lib/python3.7/site-packages/airflow/models/baseoperator.py", line 1474, in set_downstream
    self._set_relatives(task_or_task_list, upstream=False, edge_modifier=edge_modifier)
  File "/usr/local/lib/python3.7/site-packages/airflow/models/baseoperator.py", line 1412, in _set_relatives
    task_object.update_relative(self, not upstream)
AttributeError: 'DAG' object has no attribute 'update_relative'

这是内置的功能,似乎正在失败:

代码语言:javascript
运行
复制
def set_downstream(
        self,
        task_or_task_list: Union[TaskMixin, Sequence[TaskMixin]],
        edge_modifier: Optional[EdgeModifier] = None,
    ) -> None:
        """
        Set a task or a task list to be directly downstream from the current
        task. Required by TaskMixin.
        """
        self._set_relatives(task_or_task_list, upstream=False, edge_modifier=edge_modifier)

我们试图在DAG中运行的代码如下:

代码语言:javascript
运行
复制
    for report in reports:
        dag << PythonOperator(
            task_id=f"task_{report}",
            python_callable=process,
            op_kwargs={
                "conn": "snowflake_production",
                "table": report,
            },
            provide_context=True,
        )

我认为这个从Python3.8到3.7的转换导致了这个问题,但我不确定。

有没有人遇到过类似的问题?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-02-23 09:13:18

对于Airflow>=2.0.0,不再支持使用位移位(位移位)将任务分配给DAG。

试图做:

代码语言:javascript
运行
复制
dag = DAG("my_dag")
dummy = DummyOperator(task_id="dummy")

dag >> dummy

都不管用。

应仅在运算符之间设置依赖项。

您应该使用上下文管理器:

代码语言:javascript
运行
复制
with DAG("my_dag") as dag:
    dummy = DummyOperator(task_id="dummy")

它已经处理了操作符与DAG对象的关系。如果您不愿意,那么将操作符构造函数中的dag参数使用为:DummyOperator(task_id="dummy", dag=dag)

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

https://stackoverflow.com/questions/71228643

复制
相关文章

相似问题

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