Partilhar via


Solução de problemas do Databricks Connect for Python

Nota

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

Este artigo fornece informações de solução de problemas para o Databricks Connect for Python. O Databricks Connect permite conectar IDEs populares, servidores de notebook e aplicativos personalizados a clusters do Azure Databricks. Consulte O que é 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ão do Python

Verifique se a versão do Python que você está usando localmente tem pelo menos a mesma versão secundária que a versão no cluster (por exemplo, 3.10.11 versus 3.10.10 é OK, 3.10 versus 3.9 não é). Para versões suportadas, consulte a matriz de suporte da versão .

Se você tiver várias versões do Python instaladas localmente, certifique-se de que o Databricks Connect esteja usando a correta, definindo a PYSPARK_PYTHON variável de ambiente (por exemplo, PYSPARK_PYTHON=python3).

Instalações conflitantes do PySpark

O databricks-connect pacote entra em conflito com o PySpark. Ter ambos instalados 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 você tiver pyspark instalado no seu ambiente Python, certifique-se de que ele seja 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.

Databricks Connect e PySpark são mutuamente exclusivos, mas é possível usar ambientes virtuais Python para fazer desenvolvimento remoto com databricks-connect em seu IDE e testes locais com pyspark em um terminal. No entanto, o Databricks recomenda que você use o Databricks Connect for Python com de computação sem servidor para todos os testes, pelos seguintes motivos:

  • 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 você ainda optar por se conectar a um cluster Spark local, poderá especificar uma cadeia de conexão 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 você não pode executar comandos como spark-shell, também é possível que seu PATH não tenha sido configurado automaticamente pelo pip3 install e você precisará adicionar a instalação bin dir ao seu PATH manualmente. É possível usar o Databricks Connect com IDEs mesmo que isso não esteja configurado.

O nome do arquivo, nome do diretório ou sintaxe do rótulo do volume está incorreto no Windows

Se você estiver usando o Databricks Connect 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.