Solução de problemas do Databricks Connect for Scala

Observação

Este artigo aborda o Databricks Connect para Databricks Runtime 13.3 LTS ou mais recente.

Este artigo fornece informações de solução de problemas para o Databricks Connect for Scala. 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 Python deste artigo, veja Troubleshooting Databricks Connect para Python.

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.

Causa: O Databricks Connect não consegue aceder ao seu cluster.

Soluções:

  • 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.
  • Verifique se o cluster possui a versão de cluster personalizada correta, garantindo que seja compatível com o Databricks Connect.

Erros ao ligar-se ao servidor Apache Spark

Questão:

Tentar ligar-se a um servidor Apache Spark open source (por exemplo, um servidor Apache Spark 3.5.x Spark Connect a correr localmente em sc://localhost) resulta em erros como classe não encontrada, incompatibilidades no comportamento da API ou falhas de serialização.

Motivo:

O Databricks Connect é construído com base no Databricks Runtime, que tem dependências diferentes do Apache Spark open source. Em particular, os Databricks Connect 15.4 e 16.4 são incompatíveis com o Apache Spark 3.5.x porque utilizam uma versão diferente da json4s biblioteca.

Solução:

Utilize um cluster do Databricks ou computação sem servidor em vez de um servidor Apache Spark de código aberto. Consulte Configuração de computação para Databricks Connect.

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

Issue: Está a usar o Databricks Connect no Windows e depara-se com:

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

Cause: Databricks Connect foi instalado em um diretório com um espaço de em seu caminho.

Solution: Você pode contornar isso instalando em um caminho de diretório sem espaços ou configurando seu caminho usando o formulário de nome abreviado .

Erro: Falha ao inicializar MemoryUtil

Problema: Quando você tenta criar um DatabricksSession, ele retorna um erro Failed to initialize MemoryUtil.

Cause: O Apache Arrow é uma dependência do cliente Databricks Connect e está a tentar aceder a um método privado de Java usando reflection, que por defeito está bloqueado em Java 17 devido a questões de segurança.

Solução:

Defina o seguinte campo JVM antes da inicialização da JVM:

--add-opens=java.base/java.nio=org.apache.arrow.memory.core,ALL-UNNAMED

Para mais informações, consulte Apache Arrow Java Compatibilidade.

")

Para definir opções do Java no IntelliJ, veja Configuração de execução/depuração no IntelliJ.