빅데이터/airflow
[airflow] PythonOperator에서 TypeError: function() got an unexpected keyword argument 'conf' 오류
hs_seo
2021. 11. 25. 22:48
에어플로우에서 파이썬 오퍼레이터를 이용할 때 이런 오류가 발생하는 경우가 있습니다.
[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
반응형