You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Databricks工作区获取所有库表信息并生成统一DataFrame

在Databricks中获取所有库表信息及存储路径的方法

一、获取所有数据库和表的名称

要在Databricks工作区获取全量数据库与表名称,可借助spark.catalog提供的原生API实现:

  • 调用listDatabases()获取所有数据库列表
  • 遍历每个数据库,切换至对应库后调用listTables()获取该库下的所有表

二、将库名、表名、存储路径整合为单个DataFrame

通过遍历所有库表,收集数据库名称、表名称以及Hive存储路径信息,最终生成统一的DataFrame,方便集中查看与分析。

完整代码示例

# 初始化空列表存储表信息
table_info = []

# 获取工作区所有数据库
databases = spark.catalog.listDatabases()

# 遍历每个数据库
for db in databases:
    # 切换到当前数据库
    spark.catalog.setCurrentDatabase(db.name)
    # 获取当前库下的所有表
    tables = spark.catalog.listTables()
    
    # 遍历表,收集所需元数据
    for table in tables:
        table_info.append({
            "Database": table.database,
            "Table": table.name,
            "Location": table.location
        })

# 将收集到的信息转换为Spark DataFrame
df = spark.createDataFrame(table_info)

# 展示结果(可根据需求调整展示行数、是否截断内容)
df.show(truncate=False)

代码说明

  • spark.catalog.listDatabases():返回Databricks工作区中所有数据库的元数据对象
  • spark.catalog.setCurrentDatabase(db.name):切换至指定数据库,确保能正确获取对应库下的表
  • table.location:直接从表元数据中提取Hive存储路径
  • spark.createDataFrame(table_info):将字典列表转换为Spark DataFrame,支持后续查询、导出等操作

内容的提问来源于stack exchange,提问作者Debayan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 21:05:18