-
Notifications
You must be signed in to change notification settings - Fork 0
/
10.1_branch_operator.py
62 lines (47 loc) · 1.46 KB
/
10.1_branch_operator.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
"""
### Uso del BranchPythonOperator
El uso de este operador nos va a permitir elegir un camino u otro
de ejecuciones.
Como veremos, no solo podemos elegir una sola task a ejecutar
depués del BranchPythonOperator, sino que podemos pasar una lista
de tasks a ejecutar dentro del BranchPythonOperator.
"""
from airflow import DAG
from datetime import datetime
from airflow.operators.dummy import DummyOperator
from airflow.operators.python import BranchPythonOperator
def _branch():
accuracy = 0.16
if accuracy>0.15:
return ['accurate', 'top']
return 'inaccurate'
with DAG(
'10.1_branch_operators',
catchup=False,
start_date=datetime(2023,2,24),
schedule=None,
default_args={"owner":"Tinmar"},
tags=['Curso 4', 'The Operators Guide']
) as dag:
dag.doc_md = __doc__
training = DummyOperator(
task_id='training'
)
branch = BranchPythonOperator(
task_id='branch',
python_callable=_branch
)
accurate = DummyOperator(
task_id="accurate",
)
top = DummyOperator(
task_id="top",
)
inaccurate = DummyOperator(
task_id="inaccurate",
)
publish = DummyOperator(
task_id='publish',
trigger_rule='one_success'
)
training >> branch >> [top,accurate,inaccurate] >> publish