通过


Databricks Connect for Python 的疑难解答

注意

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

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

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

问题:尝试使用 Databricks Connect 运行代码时,收到包含 StatusCode.UNAVAILABLEStatusCode.UNKNOWNDNS resolution failed 等字符串的错误消息。

可能的原因:Databricks Connect 无法访问你的群集。

建议的解决方法:

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

Python版本不匹配

检查您在本地使用的 Python 版本的小版本号,确保它至少与群集上的版本相同(例如,3.10.113.10.10 是可以的,3.103.9 则不可以)。 有关支持的版本,请参阅 版本支持矩阵

如果在本地安装了多个Python版本,请确保 Databricks Connect 通过设置 PYSPARK_PYTHON 环境变量(例如,PYSPARK_PYTHON=python3)来使用正确的版本。

冲突的 PySpark 安装

databricks-connect 包与 PySpark 冲突。 在初始化 Python 中的 Spark 上下文时,安装这两个组件会导致错误。 这可能以多种方式显示出来,包括“流已损坏”或“未找到类”错误。 如果在Python环境中安装了 pyspark,请确保在安装 databricks-connect之前卸载它。 卸载 PySpark 后,请确保彻底重新安装 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 和 PySpark 互斥,但可以使用Python虚拟环境在 IDE 中使用 databricks-connect 进行远程开发,并在终端中使用 pyspark 进行本地测试。 但是,Databricks 建议对于所有测试使用 Python 和 无服务器计算 的 Databricks Connect,原因如下:

  • Databricks Runtime,因此 databricks-connect包含 OSS pyspark中不可用的功能。
  • 使用 databricks-connect 和无服务器进行测试比在本地测试 pyspark 更快。
  • Unity Catalog 的集成在 pyspark 中不可用,因此,当您在本地使用 pyspark 进行测试时,不会强制实施任何权限。
  • 对于使用外部依赖项(如 Databricks 计算)进行端到端测试,集成测试(而不是单元测试)是最好的。

如果仍选择连接到本地 Spark 群集,可以使用以下命令指定 连接字符串

connection_string = "sc://localhost"
DatabricksSession.builder.remote(connection_string).getOrCreate()

二进制文件的 PATH 条目冲突或缺失

您的 PATH 配置可能导致 spark-shell 等命令运行之前安装的其他某些二进制文件,而不是运行由 Databricks Connect 提供的二进制文件。 应确保 Databricks Connect 二进制文件占主导,或者删除之前安装的二进制文件。

如果无法运行类似 spark-shell 的命令,也可能是 pip3 install 未自动设置 PATH,你需要将安装 bin 目录手动添加到 PATH 中。 即使未设置此项,也可将 Databricks Connect 与 IDE 一起使用。

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

如果在 Windows 上使用 Databricks Connect 并看到:

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

Databricks Connect 已安装到路径中带有空格的目录中。 要解决此问题,可安装到不带空格的目录路径或使用短名称格式配置路径。