Передача функции с помощью op_kwargs (PythonVirtualOperator) в Airflow Dag - PullRequest
0 голосов
/ 05 апреля 2020

У меня есть метка с двумя функциями, и я хочу вызвать одну функцию в другой в ней. Я попробовал два подхода:

Подход 1:

def upload_to_AWS(df):
    #code to upload to AWS

def A1(callback):
    df = obj.fucntion1()
    callback(df)


with DAG(f"d1", default_args=args) as dag:
    prod_op = PythonVirtualenvOperator(
    task_id="A1",
    python_callable=A1,
    requirements=["NAME OF LIBRARY"],
    system_site_packages=False,
    op_kwargs={'callback': upload_to_AWS}
)

Ошибка: проблема с травлением; arg_dict = pickle.load (f) \ nModuleNotFoundError: Нет модуля с именем

Подход 2:

def upload_to_AWS(df):
    #code to upload to AWS

def A1(callback):
    df = obj.fucntion1()
    upload_to_AWS(df)


with DAG(f"d1", default_args=args) as dag:
    prod_op = PythonVirtualenvOperator(
    task_id="A1",
    python_callable=A1,
    requirements=["NAME OF LIBRARY"],
    system_site_packages=False
)

Ошибка: Нет модуля с именем upload_to_ AWS

Есть предложения?

...