Joh*_*ohn 4 apache-spark databricks
以下可用于分别显示当前模式或指定模式中的表:
show tables;
show tables in my_schema;
Run Code Online (Sandbox Code Playgroud)
此处记录: https://docs.databricks.com/spark/latest/spark-sql/language-manual/show-tables.html
有没有办法显示所有数据库中的所有表?
Databricks/Spark 中是否有元数据表(类似于 Oracle 中的 all_ 或 dba_ 表或 MySql 中的 information_schema)?有没有办法对 Databricks 中的数据库对象进行更具体的查询?像这样的东西:
select * from i_dont_know_what where lower(table_name) like '%gold%' and schema = 'myschema';
Run Code Online (Sandbox Code Playgroud)
我尝试了不同的方法来获取所有模式中的所有表,但以下是Python中最快、最有效的方法
databases = [
db.databaseName
for db in spark.sql('show databases').collect()
]
tables = [
f"{row['database']}.{row['tableName']}" #<schema>.<table> format
for db_rows in [
spark.sql(f'show tables in {db}').collect() for db in databases
]
for row in db_rows
]
print(tables)
Run Code Online (Sandbox Code Playgroud)
使用大约 160 个模式(总共大约 3300 个表)对其进行了测试,在r5n.xlarge集群上花费了大约 7 秒。
| 归档时间: |
|
| 查看次数: |
24111 次 |
| 最近记录: |