Compartilhar via


Solução de problemas do Databricks Connect para Python

Observação

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

Este artigo apresenta informações de solução de problemas do Databricks Connect para Python. O Databricks Connect permite que você conecte IDEs, servidores de notebook populares e aplicativos personalizados aos clusters do Azure Databricks. Consulte O que é o Databricks Connect?. Para obter a versão Scala deste artigo, consulte Solução de problemas do Databricks Connect para Scala.

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

Problema: ao tentar executar o código com o Databricks Connect, você receberá uma mensagem de erro que contém cadeias de caracteres como StatusCode.UNAVAILABLE, StatusCode.UNKNOWN, DNS resolution failed ou Received http2 header with status: 500.

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

Soluções recomendadas:

  • Verifique se o nome da instância do workspace está correto. Se você usar variáveis de ambiente, verifique se a variável de ambiente relacionada está disponível e é correta no computador de desenvolvimento local.
  • Verifique se a ID do cluster está correta. Se você usar variáveis de ambiente, verifique se a variável de ambiente relacionada está disponível e é correta no computador de desenvolvimento local.
  • Verifique se o cluster tem a versão correta personalizada do cluster 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 em relação a 3.10.10 é adequado, mas 3.10 em relação a 3.9 não). Para versões com suporte, consulte a matriz de suporte de versão.

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

Instalações conflitantes do PySpark

O pacote databricks-connect entra em conflito com o PySpark. Ter os dois instalados causará erros ao inicializar o contexto do Spark no Python. Isso pode se manifestar de várias maneiras, incluindo erros de “fluxo corrompido” ou “classe não encontrada”. Se você tiver pyspark instalado em seu ambiente python, verifique se ele está desinstalado antes de databricks-connectinstalar. Depois de desinstalar o PySpark, lembre-se de reinstalar totalmente o pacote do 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 do Python para fazer o desenvolvimento remoto em databricks-connect seu IDE e testes locais em pyspark um terminal. No entanto, o Databricks recomenda que você use o Databricks Connect para Python com computação sem servidor para todos os testes, pelos seguintes motivos:

  • O 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 do Unity não estão disponíveis em pyspark, portanto, as permissões não serão aplicadas ao testar pyspark localmente.
  • Para testar de ponta a ponta com uma dependência externa, como a computação do Databricks, os testes de integração, em vez de testes de unidade, são os melhores.

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 PATH conflitante ou ausente para binários

É possível que o PATH esteja configurado, ou seja, comandos como spark-shell executarão algum outro binário instalado anteriormente em vez do fornecido com o Databricks Connect. Você deve verificar se os binários do Databricks Connect têm precedência ou remover os instalados anteriormente.

Se você não puder executar comandos como spark-shell, também é possível que seu PATH não tenha sido configurado pip3 install automaticamente e você precisará adicionar o dir de instalação bin ao seu PATH manualmente. É possível usar o Databricks Connect com IDEs mesmo que isso não esteja configurado.

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

Se estiver usando o Databricks Connect no Windows e receber:

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. Resolva isso instalando em um caminho de diretório sem espaços ou configurando o caminho usando o formato de nome curto.