1. ホーム
  2. airflow

[解決済み] エアフローの変数 'ds' へのアクセス

2022-02-19 16:05:02

質問内容

Pythonのコードで以下のようにマクロにアクセスすることができます。

partition_dt = macros.ds_add(ds, 1)

しかし、どのようにしたら ds 変数自体にアクセスできるのは、テンプレート内だけのようです。何かポインターはありますか?

解決方法は?

AirFlow ds 内蔵のデフォルト変数である実行日(YYYY-MM-DD)を呼び出したいのだと思います。

dsだけを呼び出すには、次のようにします。

EXEC_DATE = '{{ ds }}'

あなたが望んでいたものを呼び出すには - macros.ds_add:

EXEC_DATE = '{{ macros.ds_add(ds, 1) }}'

そして、このように読み込む。

T1 = BashOperator(\
        task_id='test_ds',
        bash_command='echo ' + EXEC_DATE
        dag=DAG)

一応、書式を決めておくと(私がそうだったように)、できます。

EXEC_DATE = '{{ macros.ds_format(macros.ds_add(ds, 1), "%Y-%m-%d", "%Y%m%d") }}'