Slide 13
Slide 13 text
CONFIDENTIAL | © 2023 EPAM Systems, Inc.
Custom Python Functions
13
dag = DAG(
dag_id="example_template_as_python_object",
schedule_interval=None,
start_date=days_ago(2),
render_template_as_native_obj=True,
)
def extract():
data_string = '{"1001": 301.27, "1002": 433.21, "1003": 502.22}’
return json.loads(data_string)
def transform(order_data):
print(type(order_data))
for value in order_data.values():
total_order_value += value
return {"total_order_value": total_order_value}
extract_task = PythonOperator(
task_id="extract",
python_callable=extract
)
transform_task = PythonOperator(
task_id="transform", op_kwargs={"order_data": "{{ti.xcom_pull('extract')}}"},
python_callable=transform
)
extract_task >> transform_task
Functions are
tasks to be run on
different
Airflow Workers