Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

Problemas com as Versões do Airflow e conexão com o DataBricks.

Se seguirmos exatamente os comandos passados na aula, não conseguimos configurar o airflow em uma versão que dê acesso ao tipo de conexão do Databricks.

Mesmo utilizando o comando pip install apache-airflow-providers-databricks, não da certo.
Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Estou preso no meio da atividade e sem ter como seguir.

4 respostas

Ei, João! Tudo bem?

O problema parece estar relacionado a uma versão desatualizada do setuptools, que causa esse TypeError no canonicalize_version.

Teste atualizar o setuptools com o comando:

pip install --upgrade setuptools

Aproveite para atualizar o pip também:

pip install --upgrade pip

Feito isso, observe se funciona como esperado. Caso o erro persista, compartilhar mais detalhes sobre as versões que está usando, por exemplo, do Python, do Airflow e tudo mais.

Espero ter ajudado e qualquer dúvida, compartilhe no fórum.

Até mais, João!

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

Boa noite Nathalia.

Reinstalei minha WSL e o meu Ubuntu, refiz todo o processo incluindo os comando que me enviou, mas o problema continua.

Segue as versões do python e do airflow instaladas.

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

Ei, João!

Obrigada por retornar.

O print nos mostra dois problemas diferentes: o conflito de versões entre ferramentas build, o erro retorna quando o setuptools tenta usar uma função de uma versão antiga do packaging e, o outro, é sobre instalação do airflow fora do ambiente virtual, o PATH não incluiu o diretório dos scripts.

Nesse caso, recomendo que refaça as etapas da seguinte forma:

  • Inicie do zero, desativando qualquer ambiente virtual ativo:
deactivate 2>/dev/null || true
  • Crie e ative um ambiente virtual, usando a versão do seu Python 3.10:
python3.10 -m venv ~/venvs/airflow310
source ~/venvs/airflow310/bin/activate
  • Atualize as ferramentas de build para garantir que pip, setuptools, wheel e packaging estejam na versão mais recente:
pip install --upgrade pip setuptools wheel packaging
python -c "import packaging; print('packaging=', packaging.__version__)"

Confirme que a versão do packaging é 24.x ou superior.

  • Instale o Airflow com constraints, definindo a versão do Airflow e do Python, e use o arquivo de constraints para evitar conflitos:
export AIRFLOW_VERSION=2.9.3
export PYTHON_VERSION=3.10
export CONSTRAINT_URL="https://raw.githubusercontent.com/apache/airflow/constraints-${AIRFLOW_VERSION}/constraints-${PYTHON_VERSION}.txt"
pip install "apache-airflow==${AIRFLOW_VERSION}" --constraint "${CONSTRAINT_URL}"
  • Instale o provider do Databricks, usando o mesmo arquivo de constraints:
pip install "apache-airflow-providers-databricks" --constraint "${CONSTRAINT_URL}"
  • Verifique a instalação:
which airflow
airflow version

Espero que dê certo. Conte sempre com a gente aqui no fórum.

Abraço!

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

solução!

Nathalia, esbarrei em um outro problema.

Aparentemente o azure databricks não disponibiliza mais clusters gratuitos durante o período grátis de 14 dias, isso impossibilita de realizar a atividade?

Pesquisei bastante, mas não consegui identificar nenhuma outra maneira de finalizar o projeto sem mudando a conta do azure databricks para uma versão paga ( não consigo registrar nenhum cartão na plataforma, por algum motivo meus cartões e validação do celular não funcionam também).

Tentei criar o job utilizando a opção Serveless em meu azure DataBricks, depois ao tentar criar a conexão do meu airflow com o Databricks ele além de não dar a opção de testar a conexão, quando tento apenas salvar a conexão da uma mensagem de changed row verde no topo e quando volto para a página principal do airflow a minha conexão não aparece na lista:
Insira aqui a descrição dessa imagem para ajudar na acessibilidade
Insira aqui a descrição dessa imagem para ajudar na acessibilidade
Insira aqui a descrição dessa imagem para ajudar na acessibilidade