注意
本文介绍适用于 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.UNAVAILABLE、StatusCode.UNKNOWN 或 DNS resolution failed 等字符串的错误消息。
可能的原因:Databricks Connect 无法访问你的群集。
建议的解决方法:
- 检查并确保工作区实例名称正确。 如果使用了环境变量,请检查并确保相关环境变量在本地开发计算机上可用且正确。
- 检查并确保群集 ID 正确。 如果使用了环境变量,请检查并确保相关环境变量在本地开发计算机上可用且正确。
- 检查并确保群集使用与 Databricks Connect 兼容的正确自定义群集版本。
Python版本不匹配
检查您在本地使用的 Python 版本的小版本号,确保它至少与群集上的版本相同(例如,3.10.11 与 3.10.10 是可以的,3.10 与 3.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包含 OSSpyspark中不可用的功能。 - 使用
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 已安装到路径中带有空格的目录中。 要解决此问题,可安装到不带空格的目录路径或使用短名称格式配置路径。