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 mais populares, servidores de notebook e aplicativos personalizados aos clusters do Azure Databricks. Veja O que é Databricks Connect?. Para acessar a versão Python deste artigo, confira Solução de problemas do Databricks Connect para 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 failed
ou 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.
O nome do arquivo, o nome do diretório ou a sintaxe do rótulo de volume estão incorretos no Windows
problema: você está usando o Databricks Connect no Windows e veja:
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
.
Causa: o Apache Arrow é uma dependência do cliente do Databricks Connect e está tentando acessar um método Java privado usando reflexão, que é bloqueado por padrão 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 Compatibilidade Java do Apache Arrow.
Gorjeta
Para definir as opções do Java no IntelliJ, consulte Configuração de execução/depuração do IntelliJ.