gpt4 book ai didi

python - 如何查看Databricks中的所有数据库和表

转载 作者:行者123 更新时间:2023-12-02 05:55:15 24 4
gpt4 key购买 nike

我想列出 Azure Databricks 中每个数据库中的所有表。

所以我希望输出看起来像这样:

Database | Table_name
Database1 | Table_1
Database1 | Table_2
Database1 | Table_3
Database2 | Table_1
etc..

这就是我现在所拥有的:

from pyspark.sql.types import *

DatabaseDF = spark.sql(f"show databases")
df = spark.sql(f"show Tables FROM {DatabaseDF}")
#df = df.select("databaseName")
#list = [x["databaseName"] for x in df.collect()]

print(DatabaseDF)
display(DatabaseDF)

df = spark.sql(f"show Tables FROM {schemaName}")
df = df.select("TableName")
list = [x["TableName"] for x in df.collect()]

## Iterate through list of schema
for x in list:
### INPUT Required: Change for target table
tempTable = x
df2 = spark.sql(f"SELECT COUNT(*) FROM {schemaName}.{tempTable}").collect()
for x in df2:
rowCount = x[0]

if rowCount == 0:
print(schemaName + "." + tempTable + " has 0 rows")

但我还没有完全得到结果。

最佳答案

有一个用于触发 session 的catalog属性,可能是您正在寻找的:

spark.catalog.listDatabases()
spark.catalog.listTables("database_name")

listDatabases 返回您拥有的数据库列表。
listTables 返回某个数据库名称的表列表。

例如,您可以执行以下操作:

[
(table.database, table.name)
for database in spark.catalog.listDatabases()
for table in spark.catalog.listTables(database.name)
]

获取数据库和表的列表。

<小时/>

编辑:(thx @Alex Ott)即使这个解决方案工作正常,它也很慢。直接使用一些 sql 命令,例如 showdatabaseshowtablesin... 应该可以更快地完成工作。

关于python - 如何查看Databricks中的所有数据库和表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64013666/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com