데이터 엔지니어링/airflow
[airflow] op_args
김초송
2023. 6. 22. 17:48
op_args
- python operator 로 함수를 호출할 때 넘겨받는 인자들
= op_args의 값
python_task = PythonOperator(
task_id='python_task',
python_callable=regist,
op_args=[‘name’,’sex’]
)
파이썬 오퍼레이터 op_args 사용
- 함수에 일반 변수만 있을 경우
- 일반 변수 + *args
- *args 만 있을 경우
- 일반 + *args + **kwargs
일반 변수 + *args + **kwargs
plugins/common/common_func.py
def regist2(name, sex, *args, **kwargs):
print(f'이름 : {name}')
print(f'성별 : {sex}')
print(f'기타 : {args}')
email = kwargs['email'] or None
phone = kwargs['phone'] or None
if email : print(email)
if phone : print(phone)
dags/dags_python_with_op_kwagrs.py
from airflow import DAG
from airflow.operators.python import PythonOperator
from common.common_func import regist2
import pendulum
with DAG(
dag_id="dags_python_with_op_kwargs",
schedule="30 6 * * *",
start_date=pendulum.datetime(2023, 6, 1, tz="Asia/Seoul"),
catchup=False
) as dag:
regist2_t1 = PythonOperator(
task_id='regist2_t1',
python_callable=regist2,
op_args=['name', 'sex', 'country', 'city']
op_kwargs={'email':'@gmail.com', 'phone':'010-2345-9876'}
)