1
resposta

AIRFLOW não importa DAG.

Ola,

Aqui em minha máquina o airflow não está conseguindo importar o arquivo 'primeiro_DAG.py' como exposto em aula alegando que não pode trabalhar com listas e tuplas, no exemplo em aula utilizamos listas na parte em que estamos ordenando a execução das tasks. Fui na documentação do airflow e vi que alem dos operadores '>>' também podemos utilizar a função set_downstream(), tentei utilizar ela mas erro persistiu.

Para efeito de teste executei apenas a tarefa_4 condicionada a execução da tarefa_3 e o airflow conseguiu importar.

Segue o código abaixo:

from airflow.models import DAG from airflow.utils.dates import days_ago from airflow.operators.empty import EmptyOperator from airflow.operators.bash import BashOperator

with DAG( 'dag1', start_date=days_ago(1), schedule_interval='@daily' )as dag: tarefa_1=EmptyOperator(task_id='tarefa_1'), tarefa_2=EmptyOperator(task_id='tarefa_2'), tarefa_3=EmptyOperator(task_id='tarefa_3'), tarefa_4=BashOperator( task_id='cria_pasta', bash_command='mkdir -p "/home/alexssandro/Documentos/airflowalura/pasta/"' ) tarefa_1 >> (tarefa_2, tarefa_3) tarefa_3 >> tarefa_4

1 resposta

Oii, Alexssandro! Tudo bem com você?

No Airflow, quando você quer definir várias tarefas para serem executadas após uma única tarefa, você precisa usar uma lista. No entanto, no seu código, você está usando uma tupla.

Uma tupla é definida com parênteses ( ), enquanto uma lista é definida com colchetes [ ]. No seu código, você usou parênteses, que é a sintaxe para uma tupla. Isso é provavelmente o que está causando o erro.

Tente alterar a linha onde você define a dependência entre as tarefas para usar colchetes [ ] em vez de parênteses ( ), por favor. Seu código ficaria assim:

tarefa_1 >> [tarefa_2, tarefa_3]

Se a dúvida persistir, me dá um retorno, ok? Assim podemos buscar outra alternativa. ^_^

Abraços!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.