Resolução de Problemas no Databricks Connect para Python

Nota

Este artigo aborda o Databricks Connect para o Databricks Runtime 13.3 LTS e superior.

Este artigo fornece informações de resolução de problemas para o Databricks Connect para Python. O Databricks Connect permite-lhe ligar IDEs populares, servidores de cadernos e aplicações personalizadas a clusters do Azure Databricks. Consulte Databricks Connect. Para a versão Scala deste artigo, consulte Solução de problemas do Databricks Connect for Scala.

Erro: StatusCode.UNAVAILABLE, StatusCode.UNKNOWN, falha na resolução DNS ou cabeçalho http2 recebido com status 500

Problema: Quando você tenta executar código com o Databricks Connect, você recebe uma mensagem de erro que contém cadeias de caracteres como StatusCode.UNAVAILABLE, StatusCode.UNKNOWN, DNS resolution failedou Received http2 header with status: 500.

Possível causa: o Databricks Connect não consegue alcançar o cluster.

Soluções recomendadas:

  • Verifique se o nome da instância do espaço de trabalho está correto. Se você usar variáveis de ambiente, verifique se a variável de ambiente relacionada está disponível e correta em sua máquina de desenvolvimento local.
  • Verifique se o ID do cluster está correto. Se você usar variáveis de ambiente, verifique se a variável de ambiente relacionada está disponível e correta em sua máquina de desenvolvimento local.
  • Certifique-se de que o seu cluster tenha a versão personalizada correta do cluster que é compatível com o Databricks Connect.

Incompatibilidade de versões em Python

Verifica se a versão Python que estás a usar localmente tem pelo menos a mesma versão menor que a versão do cluster (por exemplo, 3.10.11 versus 3.10.10 é aceitável, 3.10 versus 3.9 não é). Para versões suportadas, consulte a matriz de suporte da versão .

Se tiver várias versões de Python instaladas localmente, certifique-se de que o Databricks Connect está a usar a certa definindo a variável de ambiente PYSPARK_PYTHON (por exemplo, PYSPARK_PYTHON=python3).

Instalações conflitantes do PySpark

O databricks-connect pacote entra em conflito com o PySpark. Ter ambos instalados vai causar erros ao inicializar o contexto do Spark em Python. Isso pode se manifestar de várias maneiras, incluindo erros de "fluxo corrompido" ou "classe não encontrada". Se tiver pyspark instalado no seu ambiente Python, certifique-se de que está desinstalado antes de instalar databricks-connect. Depois de desinstalar o PySpark, certifique-se de reinstalar totalmente o pacote Databricks Connect:

pip3 uninstall pyspark
pip3 uninstall databricks-connect
pip3 install --upgrade "databricks-connect==14.0.*"  # or X.Y.* to match your specific cluster version.

O Databricks Connect e o PySpark são mutuamente exclusivos, mas é possível usar ambientes virtuais Python para fazer desenvolvimento remoto com databricks-connect no seu IDE e testes locais com pyspark num terminal. No entanto, a Databricks recomenda que utilize o Databricks Connect para Python com computação serverless para todos os testes, pelas seguintes razões:

  • Databricks Runtime e, portanto, databricks-connect, contém recursos que não estão disponíveis no OSS pyspark.
  • Testar com databricks-connect e sem servidor é mais rápido do que testar usando pyspark localmente.
  • As integrações do Catálogo Unity não estão disponíveis no pyspark, portanto, não haverá permissões impostas quando você testar usando pyspark localmente.
  • Para testar de ponta a ponta com uma dependência externa, como o processamento do Databricks, os testes de integração, ao contrário dos testes de unidade, são mais eficazes.

Se ainda optar por ligar-se a um cluster Spark local, pode especificar um connection string usando o seguinte:

connection_string = "sc://localhost"
DatabricksSession.builder.remote(connection_string).getOrCreate()

Entrada conflitante ou ausente PATH para binários

É possível que seu PATH esteja configurado para que comandos como spark-shell estarão executando algum outro binário instalado anteriormente em vez daquele fornecido com o Databricks Connect. Certifique-se de que os binários do Databricks Connect tenham precedência ou remova os instalados anteriormente.

Se não consegues executar comandos como spark-shell, pode ser que o teu PATH não tenha sido configurado automaticamente por pip3 install e precise adicionar manualmente o diretório de instalação bin ao teu PATH. É possível usar o Databricks Connect com IDEs mesmo que isso não esteja configurado.

A sintaxe do nome do ficheiro, do diretório ou do rótulo de volume está incorreta no Windows

Se estiver a usar Databricks, ligue-se no Windows e veja:

The filename, directory name, or volume label syntax is incorrect.

O Databricks Connect foi instalado em um diretório com um espaço no caminho. Você pode contornar isso instalando num caminho de diretório sem espaços, ou configurando seu caminho usando a forma de nome curto.