排查适用于 Scala 的 Databricks Connect 的问题

备注

本文介绍适用于 Databricks Runtime 13.3 LTS 及以上版本的 Databricks Connect。

本文提供用于 Scala 的 Databricks Connect 的故障排除信息。 Databricks Connect 使你能够将常用 IDE、笔记本服务器和自定义应用程序连接到 Azure Databricks 群集。 请参阅什么是 Databricks Connect?。 有关本文的 Python 版本,请参阅排查适用于 Python 的 Databricks Connect 的问题

错误:StatusCode.UNAVAILABLE、StatusCode.UNKNOWN、DNS 解析失败或收到状态为 500 的 http2 标头

问题:尝试使用 Databricks Connect 运行代码时,会收到包含字符串的错误消息,如 StatusCode.UNAVAILABLEStatusCode.UNKNOWNDNS resolution failedReceived http2 header with status: 500

原因:Databricks Connect 无法访问群集。

解决方法

  • 检查以确保工作区实例名称正确。 如果您使用环境变量,请检查相关环境变量是否在本地开发机器上可用且正确。
  • 检查以确保群集 ID 正确。 如果您使用环境变量,请检查相关环境变量是否在本地开发机器上可用且正确。
  • 检查以确保群集具有与 Databricks Connect 兼容的正确自定义群集版本。

Windows 上的文件名、目录名称或卷标签语法不正确

问题:你在 Windows 上使用 Databricks Connect 时遇到以下问题:

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

原因:Databricks Connect 安装在路径中有空格的目录中。

解决方案:可以通过安装到没有空格的目录路径,或使用 短名称形式配置路径来解决此问题。

错误:无法初始化 MemoryUtil

问题:尝试生成 a DatabricksSession时,它将返回错误 Failed to initialize MemoryUtil

原因:Apache Arrow 是 Databricks Connect 客户端的依赖项,它正尝试使用反射访问专用 Java 方法,该反射在 Java 17 中默认受阻,因为出于安全考虑。

解决方案

在 JVM 初始化之前设置以下 JVM 字段:

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

有关详细信息,请参阅 Apache Arrow Java 兼容性

提示

若要在 IntelliJ 中设置 Java 选项,请参阅 IntelliJ 运行/调试配置