티스토리 뷰

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

 

[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
반응형
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함