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 fornece informações de solução de problemas para o Databricks Connect para Python. O Databricks Connect permite que você conecte IDEs populares, servidores de notebook e aplicativos personalizados para Azure Databricks clusters. Consulte 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.

Desalinhamento de versão do Python

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

Se você tiver várias versões de Python instaladas localmente, verifique se o Databricks Connect está usando o correto 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 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 em seu ambiente de Python, verifique se ele está desinstalado antes de instalar databricks-connect. 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 Python para fazer o 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 para Python com computação serverless 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 um 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.

O nome do arquivo, o nome do diretório ou a sintaxe do rótulo de volume estão incorretos no Windows

Se você estiver usando o Databricks Connect no Windows e ver:

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