Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Dúvida] O código não sai da etapa extrai_dados, fica como "running"

Eu não sei qual o problema, a principio até tentei mudar as datas para esse mês apenas para ver se ia, mas ele passa da Etapa de criar a pasta, corretamente, e fica na Etapa de extrai_dados com a descrição "Running", mas não sai dela.

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

o código:

from airflow import DAG 
from airflow.operators.bash import BashOperator
from airflow.operators.python import PythonOperator
from airflow.macros import ds_add
import pendulum
from os.path import join
import pandas as pd

with DAG(
    "dados_climaticos_2",
    start_date=pendulum.datetime(2022, 8, 22, tz="UTC"),
    schedule_interval='0 0 * * 1', # executar toda segunda feira
) as dag:

    tarefa_1  = BashOperator(
        task_id = 'cria_pasta',
        bash_command= 'mkdir -p "/Users/marciofernandes/Documents/airflow/semana={{data_interval_end.strftime("%Y-%m-%d")}}"'
    )

    def extrai_dados(data_interval_end):
        city = 'Boston'
        key = 'YMQUCLMC2X2EMY5PRPKVQ6ZFK'

        URL = join('https://weather.visualcrossing.com/VisualCrossingWebServices/rest/services/timeline/',
            f'{city}/{data_interval_end}/{ds_add(data_interval_end, 7)}?unitGroup=metric&include=days&key={key}&contentType=csv')

        dados = pd.read_csv(URL)

        file_path = f'/Users/marciofernandes/Documents/airflow/semana={data_interval_end}/'

        dados.to_csv(file_path + 'dados_brutos.csv')
        dados[['datetime','tempmin', 'temp', 'tempmax']].to_csv(file_path + 'temperaturas.csv')
        dados[['datetime', 'description', 'icon']].to_csv(file_path + 'condicoes.csv')

    tarefa_2 = PythonOperator(
        task_id = 'extrai_dados',
        python_callable = extrai_dados,
        op_kwargs = {'data_interval_end': '{{data_interval_end.strftime("%Y-%m-%d")}}'}
    )

    tarefa_1 >> tarefa_2
1 resposta
solução!

Olá, Márcio, tudo bem?

Analisei seu código e não encontrei erros aparentes. Para tentar resolver o problema, sugiro que siga as verificações abaixo:

  1. Reinicie a DAG

    • Exclua a DAG no Airflow.
    • Volte para a interface inicial do Airflow e tente ativá-la novamente.

    Imagem de uma interface mostrando informações sobre um agendamento ('Schedule') e a próxima execução ('Next Run: 2022-12-19, 00:00:00'). No canto direito, há dois botões: um com um ícone de 'play' para iniciar a execução e outro com um ícone de lixeira destacado por uma seta vermelha, indicando a opção de exclusão."

  2. Reinicie o Airflow :

  • Caso o problema persista, reinicie o Airflow seguindo estes passos:
  1. No terminal onde ele está rodando, pressione Ctrl + C para parar a execução.

  2. Certifique-se de que está no ambiente virtual executando:

    source venv/bin/activate
    
  3. Defina o diretório do Airflow com:

    export AIRFLOW_HOME=~/Documents/airflowalura
    
  4. Inicie o Airflow novamente com:

    airflow standalone
    
  5. Acesse o painel em http://localhost:8080/ e insira a senha do admin.

  6. Verifique os logs

    Outra sugestão é conferir os logs da tarefa no Airflow para identificar possíveis erros. Para isso:

    • Navegue até a pasta de logs.
    • Localize a DAG dados_climaticos.
    • Verifique se a task extrai_dados apresenta alguma mensagem de erro.

Espero ter ajudado e fico à disposição.

Abraços!

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