SpecialistOff.NET / Вопросы / Статьи / Фрагменты кода / Резюме / Метки / Помощь / Файлы
НазадМетки: airflow apache airflow
Use the PythonOperator
to execute Python callables.
airflow/example_dags/example_python_operator.pyVIEW SOURCE
def print_context(ds, **kwargs): pprint(kwargs) print(ds) return 'Whatever you return gets printed in the logs' run_this = PythonOperator( task_id='print_the_context', provide_context=True, python_callable=print_context, dag=dag, )
Use the op_args
and op_kwargs
arguments to pass additional arguments to the Python callable.
airflow/example_dags/example_python_operator.pyVIEW SOURCE
def my_sleeping_function(random_base): """This is a function that will run within the DAG execution""" time.sleep(random_base) # Generate 5 sleeping tasks, sleeping from 0.0 to 0.4 seconds respectively for i in range(5): task = PythonOperator( task_id='sleep_for_' + str(i), python_callable=my_sleeping_function, op_kwargs={'random_base': float(i) / 10}, dag=dag, ) run_this >> task
When you set the provide_context
argument to True
, Airflow passes in an additional set of keyword arguments: one for each of the Jinja template variables and a templates_dict
argument.
The templates_dict
argument is templated, so each value in the dictionary is evaluated as a Jinja template.