为何Databricks Notebook执行show catalogs看不到spark_catalog,SQL编辑器却可以?
Databricks Notebook无法显示spark_catalog目录的解决办法
问题现象
之前在Databricks Notebook里能正常看到系统保留目录spark_catalog,最近出了问题:
- Notebook里执行
show catalogs查不到spark_catalog,直接导致业务流程报错 - 但在Databricks SQL编辑器里执行同一个命令,能正常显示该目录
截图信息
- SQL编辑器执行结果:显示包含
spark_catalog在内的完整目录列表 - Notebook单元格执行结果:仅列出自定义创建的目录,无
spark_catalog
排查修复步骤
1. 检查集群的Unity Catalog配置
- 确认集群是否关联了Unity Catalog:进入集群编辑页,查看「Unity Catalog」选项,确保已选择对应元存储。未关联Unity Catalog的集群无法识别
spark_catalog - 核对Spark配置参数:检查集群的Spark配置中是否存在
spark.sql.catalog.spark_catalog的异常配置,默认值应为com.databricks.sql.transaction.tahoe.catalog.DeltaCatalog,若被修改则改回默认
2. 验证用户权限
- 检查Notebook执行用户的权限:通过Databricks管理控制台的权限模块,确认该用户对
spark_catalog拥有「USE CATALOG」权限 - 交叉测试:用SQL编辑器里能正常查看的用户打开Notebook执行命令,排查是否是权限差异导致
3. 核对Notebook的SQL执行方式
- 如果用Python/Scala执行SQL,确保语法正确:比如Python中需用
spark.sql("show catalogs").show(),避免直接写SQL语句导致的解析异常 - 重启集群:集群元数据缓存可能异常,重启后再执行命令验证
4. 排查平台版本影响
- 确认近期是否有Databricks版本升级:部分版本更新可能导致Notebook与SQL编辑器的元数据加载逻辑不一致,可查看版本日志或联系官方技术支持确认已知问题
内容的提问来源于stack exchange,提问作者Ashok Khote
相关产品推荐
相关产品推荐

