非高级版Databricks账户如何编程列出目录/架构/表?
非高级版Databricks账户编程列目录/架构/表的方法
非高级版Databricks使用的是工作区级元数据存储,而非Unity Catalog,你可以通过以下几种编程方式列出资源:
1. Spark SQL API(推荐)
Spark本身可以直接访问工作区的元数据,无需依赖Unity Catalog:
列出所有数据库(架构)
# 用PySpark执行SQL databases = spark.sql("SHOW DATABASES").collect() for db in databases: print(db.databaseName)
列出指定数据库下的表
target_db = "your_database_name" tables = spark.sql(f"SHOW TABLES IN {target_db}").collect() for table in tables: print(table.tableName)
查看资源详情
如果需要更详细的信息,比如数据库位置、表结构,可以用:
-- 查看数据库详情 DESCRIBE DATABASE EXTENDED your_database_name; -- 查看表详情 DESCRIBE TABLE EXTENDED your_database_name.your_table_name;
2. Databricks REST API
通过调用工作区的REST接口获取元数据,需要使用个人访问令牌(PAT)认证:
获取数据库列表
import requests databricks_host = "https://<你的工作区URL>" auth_token = "<你的个人访问令牌>" headers = {"Authorization": f"Bearer {auth_token}"} response = requests.get(f"{databricks_host}/api/2.0/preview/sql/databases", headers=headers) databases = response.json()["databases"] for db in databases: print(db["name"])
获取指定数据库的表
params = {"schemaName": "your_database_name"} response = requests.get(f"{databricks_host}/api/2.0/preview/sql/tables", headers=headers, params=params) tables = response.json()["tables"] for table in tables: print(table["name"])
3. Databricks CLI
如果用脚本自动化,可以通过Databricks CLI执行命令并解析输出:
先配置CLI
databricks configure --token
列出所有数据库
databricks sql databases list --output json | jq -r '.databases[].name'
列出指定数据库的表
databricks sql tables list --schema-name your_database_name --output json | jq -r '.tables[].name'
以上方法均无需Unity Catalog,适用于非高级版Databricks账户。
内容的提问来源于stack exchange,提问作者Karl Nordgren
相关产品推荐
相关产品推荐

