[解決済み] エアフローです。PythonOperator: なぜ 'ds' 引数をインクルードするのですか?
質問
Python_callable として使用される関数を定義しているとき、なぜ 'ds' が関数の最初の引数として含まれているのですか?
例えば
def python_func(ds, **kwargs):
pass
Airflowのドキュメントを調べてみましたが、説明が見つかりませんでした。
解決方法は?
これは
provide_context=True
パラメータを使用します。Airflowのドキュメントによると。
を true に設定すると、Airflow は関数内で使用できる一連のキーワード引数を渡します。この一連のキーワード引数は、jinjaテンプレートで使用できるものと全く同じものです。これを動作させるには、関数のヘッダーで **kwargs を定義する必要があります。
ds
はこれらのキーワード引数の1つで、"YYYY-MM-DD"のフォーマットで実行日を表します。ドキュメントで(templated)と記されているパラメータについては
'{{ ds }}'
デフォルトの変数で実行日を渡します。デフォルト変数についてはこちらで詳しく解説しています。
https://pythonhosted.org/airflow/code.html?highlight=pythonoperator#default-variables (廃止)
https://airflow.incubator.apache.org/concepts.html?highlight=python_callable
PythonOperator はテンプレート化されたパラメータを持っていないので、以下のようなことをすると
python_callable=print_execution_date('{{ ds }}')
は動作しません。PythonOperator の呼び出し可能な関数内で実行日を表示するには、次のようにする必要があります。
def print_execution_date(ds, **kwargs):
print(ds)
または
def print_execution_date(**kwargs):
print(kwargs.get('ds'))
お役に立てれば幸いです。
関連
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン