본문 바로가기
빅데이터/airflow

[airflow] PythonOperator에서 TypeError: function() got an unexpected keyword argument 'conf' 오류

by hs_seo 2021. 11. 25.

에어플로우에서 파이썬 오퍼레이터를 이용할 때 이런 오류가 발생하는 경우가 있습니다.

 

[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
반응형