에어플로우에서 파이썬 오퍼레이터를 이용할 때 이런 오류가 발생하는 경우가 있습니다.
[2021-11-25 09:49:49,343] {taskinstance.py:1150} ERROR - func() got an unexpected keyword argument 'conf'
Traceback (most recent call last):
File "/home/deploy/.local/lib/python3.6/site-packages/airflow/models/taskinstance.py", line 984, in _run_raw_task
result = task_copy.execute(context=context)
File "/home/deploy/.local/lib/python3.6/site-packages/airflow/operators/python_operator.py", line 113, in execute
return_value = self.execute_callable()
File "/home/deploy/.local/lib/python3.6/site-packages/airflow/operators/python_operator.py", line 118, in execute_callable
return self.python_callable(*self.op_args, **self.op_kwargs)
TypeError: func() got an unexpected keyword argument 'conf'
이는 파이썬 오퍼레이터에서 컨텍스트를 전달하는데 이를 받아줄 인자가 없어서 발생합니다. 또한 에어플로우2에서는 인자가 없어도 오류가 발생하지 않는데, 에어플로우1에서는 오류가 발생합니다.
이 경우 provide_context를 False로 설정하거나, func함수에 변수를 받을 수 있도록 파라미터를 설정하면 됩니다.
# 1번안
# provide_context 를 False로 설정
PythonOperator(task_id='task', provide_context=False)
2 번안
# func 함수에 파라미터 설정
def func():
pass
# 기존함수에 **kwargs 파라미터 추가
def func(**kwargs):
pass
반응형
'빅데이터 > airflow' 카테고리의 다른 글
[airflow] 에어플로우 설치(celery executor + redis) (0) | 2021.12.20 |
---|---|
[airflow] 에어플로우 DB 초기화 중 Global variable explicit_defaults_for_timestamp needs to be on (1) for mysql 오류 (0) | 2021.11.30 |
[airflow] BashOperator에서 jinja2.exceptions.TemplateNotFound: 오류 (1) | 2021.11.18 |
[airflow] 에어플로우 설치 (0) | 2021.10.14 |
[airflow] 에어플로우 RestApi 설정 (0) | 2021.10.06 |