Dies steht im Zusammenhang mit dem Parameter . Gemäß der Airflow-Dokumentation,
Wenn auf True gesetzt, wird Airflow eine Reihe von Schlüsselwortargumenten übergeben, die in Ihrer Funktion verwendet werden können. Diese Kwarts entsprechen genau dem, was Sie in Ihren jinja Vorlagen verwenden können. Damit dies funktioniert, müssen Sie ** kwargs in Ihrem Funktionskopf definieren.
ds
ist eine dieser Keyword-Argumente und stellt Ausführungsdatum im Format "YYYY-MM-DD". Für Parameter, die in der Dokumentation als (Templates) gekennzeichnet sind, können Sie das Ausführungsdatum mit der Standardvariable '{{ ds }}'
übergeben. Sie können mehr über Standardvariablen hier lesen: https://pythonhosted.org/airflow/code.html?highlight=pythonoperator#default-variables
PythonOperator hat keine Template-Parameter, so etwas wie python_callable=print_execution_date('{{ ds }}')
wird nicht funktionieren. Um die Ausführung Datum innerhalb der aufrufbaren Funktion Ihres PythonOperator zu drucken, werden Sie es zu tun haben, als
def print_execution_date(ds, **kwargs): print(ds)
oder
def print_execution_date(**kwargs): print(kwargs.get('ds'))
Hoffnung, das hilft.
Willkommen bei Stack Überlauf! Das sieht nach einer gut durchdachten und formatierten Antwort aus. Vielen Dank für Ihren Beitrag https://stackoverflow.com/help/how-to-answer – Aron
Wenn Sie Ihre Funktion wie 'def etwas (** kwargs)' definieren, dann erhalten Sie einen Fehler "unerwartetes Schlüsselwort Argument 'dag' weitergegeben python_callable (* op_args, ** op_kwargs) "so scheint es, als ob du etwas anderes haben musst, ich verstehe es nicht wirklich, aber die Verwendung eines dieser Schlüsselwortparameter vor ** kwargs scheint zu funktionieren. – Davos