我喜欢 duckdb 让我像查询 SQL 表一样查询 DataFrame:
df = pandas.read_parquet("my_data.parquet")
con.query("select * from df limit 10").fetch_df()
我也喜欢 duckdb 具有像
SHOW TABLES;
这样的元数据命令,就像真正的数据库一样。但是,SHOW TABLES;
不显示 pandas DataFrame 或其他类似表格的对象。
我的问题是:duckdb 是否提供类似
SHOW TABLES;
的东西,其中包括(1)真实数据库表和(2)类表对象(例如 pandas DataFrames)及其模式?
谢谢!
您可以使用不同的元数据表函数
duckdb_%
,如此处所述
相当于
SHOW TABLES
并将其转换为 pandas 数据框
import duckdb
df = duckdb.sql("SELECT * FROM duckdb_tables;").df()
print(df.dtypes)
database_name object
database_oid int64
schema_name object
schema_oid int64
table_name object
table_oid int64
internal bool
temporary bool
has_primary_key bool
estimated_size int64
column_count int64
index_count int64
check_constraint_count int64
sql object
dtype: object
注意:我使用的是最新版本的duckDB v0.7.1
只是在寻找这个,我发现这有效,当 select * from duckdb_tables 对我不起作用时:
import duckdb
duck_db = duckdb.connect('my_db_location', read_only=False)
db.execute("SHOW TABLES").df()