Summary

  • PythonOperator는 사용자가 만든 함수를 실행시켜주는 오퍼레이터다.
  • BranchPythonOperator는 Python 실행 결과에 따라 task를 선택적으로 실행한다.

PythonOperator

PythonOperator는 DAG 내 사용자가 정의한 함수를 실행시킬 수 있게 한다. python_callable에 실행할 함수명을 작성하는 것이 핵심이다.

from airflow import DAG
import pendulum
from airflow.operators.python import PythonOperator
import random
 
with DAG(
    dag_id="dags_python_operator",
    schedule="23 8 * * *",
    start_date=pendulum.datetime(2024, 8, 22, tz="Asia/Seoul"),
    catchup=False
) as dag:
 
    def select_fruit():
        fruit = ['APPLE', 'BANANA', 'ORANGE', 'AVOCADO']
        rand_int = random.randint(0, 3)
        print(fruit[rand_int])
 
    py_t1 = PythonOperator(
        task_id='py_t1',
        python_callable=select_fruit
    )
py_t1

BranchPythonOperator

BranchPythonOperator는 task1 결과에 따라 task2를 실행시킬지, task3를 실행시킬지 선택한다.