Solução de problemas do Databricks Connect para Scala

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 Scala. 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 Python deste artigo, consulte Troubleshooting Databricks Connect for Python.

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

Problema: ao tentar executar o código com o Databricks Connect, você obtém 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 pode alcançar seu cluster.

Soluções:

  • 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 de cluster personalizada correta compatível com o Databricks Connect.

Erros de conexão ao servidor Apache Spark

Problema:

Tentar se conectar a um servidor do Apache Spark código aberto (por exemplo, um servidor Apache Spark 3.5.x Spark Connect em execução local em sc://localhost), resulta em erros como classe não encontrada, incompatibilidades de comportamento de API ou falhas de serialização.

Causa:

O Databricks Connect é criado no Databricks Runtime, que tem dependências diferentes das código aberto Apache Spark. Em particular, o Databricks Connect 15.4 e 16.4 são incompatíveis com o Apache Spark 3.5.x porque usam uma versão diferente da json4s biblioteca.

Solução:

Use 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 o Databricks Connect.

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

Issue: você está usando o Databricks Connect no Windows e vê:

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

Causa: o Databricks Connect foi instalado em um diretório com um espaço no caminho.

Solução: resolva isso instalando em um caminho de diretório sem espaços ou configurando o caminho usando o formato de nome curto.

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á tentando acessar um método de Java privado usando reflexão, que por padrão está bloqueado no Java 17 devido a consideraçõ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 obter mais informações, consulte Apache Arrow Java Compatibility.

Gorjeta

Para definir opções Java no IntelliJ, consulte IntelliJ Run/debug configuration.