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 failed
ou 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 OSSpyspark
. - Testar com
databricks-connect
e sem servidor é mais rápido do que testar usandopyspark
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 usandopyspark
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.