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

问题描述

我想列出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")

但是我不太能得到结果。

解决方法

有一个from pygame import * import random as rd SCREEN_WIDTH = 800 SCREEN_HEIGHT = 600 NUMBER_OF_DOTS = 300 class Dot(): SIZE = 5 def __init__(self,x,y): self.x = x self.y = y self.color = random_color() def draw(self): draw.circle(screen,self.color,(self.x,self.y),Dot.SIZE) def random_color(): r = rd.randint(0,255) g = rd.randint(0,255) b = rd.randint(0,255) return (r,g,b) init() screen = display.set_mode((SCREEN_WIDTH,SCREEN_HEIGHT)) dots = [] # generate random dots all over the screen for i in range(NUMBER_OF_DOTS): x = rd.randint(100,700) y = rd.randint(100,500) dots.append(Dot(x,y)) # main while loop while True: screen.fill((255,255,255)) for dot in dots: dot.draw() display.update() time.delay(1) # Speed down 属性可以激发会话,可能是您想要的内容:

catalog

spark.catalog.listDatabases() spark.catalog.listTables("database_name") 返回您拥有的数据库列表。
listDatabases返回特定数据库名称的表列表。

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

listTables

获取数据库和表的列表。