now is better than never
[airflow] op_args 본문
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'}
)
'데이터 엔지니어링 > airflow' 카테고리의 다른 글
[airflow] Macro (0) | 2023.06.23 |
---|---|
[airflow] Jinja template (0) | 2023.06.23 |
[airflow] Python Operator (2) | 2023.06.22 |
[airflow] Email Operator (1) | 2023.06.19 |
[airflow] 외부 쉘 스크립트 수행 (0) | 2023.06.18 |