SubDagOperator 无效参数为:**kwargs: 'executor': LocalExecutor(parallelism=32)

Posted

技术标签:

【中文标题】SubDagOperator 无效参数为:**kwargs: \'executor\': LocalExecutor(parallelism=32)【英文标题】:SubDagOperator Invalid arguments were: **kwargs: 'executor': LocalExecutor(parallelism=32)SubDagOperator 无效参数为:**kwargs: 'executor': LocalExecutor(parallelism=32) 【发布时间】:2021-07-28 03:19:22 【问题描述】:

我们正在升级到 Airflow 2.0,我有以下任务:

with dag:
    cms_ingest = SubDagOperator(
        subdag=cms_s3ingest(
            DAG_NAME, 'cms_s3ingest', default_args['start_date'], dag.schedule_interval),
        task_id='cms_s3ingest',
        # so that subtasks can run in parallel
        executor=LocalExecutor(),
        task_concurrency=4)

但我看到了这个错误:

airflow.exceptions.AirflowException:无效的参数被传递给 SubDagOperator (task_id: cms_s3ingest)。无效的参数是: **kwargs: 'executor': LocalExecutor(parallelism=32)

在我的airflow.cfg 文件中,我有以下值: 并行度 = 32

我相信这是 LocalExecutor 使用的 https://airflow.apache.org/docs/apache-airflow/stable/_api/airflow/executors/local_executor/index.html#airflow.executors.local_executor.LocalExecutor。

为什么 Airflow 2.0.2 中会出现此错误,我应该如何解决?

【问题讨论】:

【参考方案1】:

当行为从 backfil 更改为调度程序逻辑 (PR) 时,executor 参数已从 SubDagOperator 中删除。

但即使在此之前,也不建议在 SubDagOperator 内并行任务,这就是为什么它默认为 SequentialExecutor(您可以阅读原因 here)

由于您使用的是Airflow>2.0.0,请注意SubDags are deprecated。你应该转到TasksGroups。

【讨论】:

以上是关于SubDagOperator 无效参数为:**kwargs: 'executor': LocalExecutor(parallelism=32)的主要内容,如果未能解决你的问题,请参考以下文章

Python-可变参数和关键字参数(*args **kw)

python中的*args和**kw

python--*args与**kw

python中的*args和**kw

*args和**kw魔法参数

python 关键字参数和可变参数*args,和**kw