如何在DuckDB Python API中显示数据表的所有列?
解决DuckDB Python API显示全部列的问题
目前DuckDB的show()方法确实没有直接控制最大列数的参数,但可以通过以下几种方式实现显示所有列,避免输出被截断:
方法1:修改DuckDB全局配置参数
通过执行SQL命令调整DuckDB的显示配置,设置无限制列数和足够宽的输出宽度:
import duckdb # 创建数据库连接 con = duckdb.connect() # 设置显示所有列,-1代表无限制 con.execute("SET max_columns = -1") # 设置足够大的宽度避免列内容被截断 con.execute("SET max_width = 10000") # 之后调用show()或直接打印Relation即可显示全列 rel = con.sql("SELECT * FROM your_table") rel.show()
方法2:转换为Pandas DataFrame显示
利用你熟悉的Pandas显示配置,将DuckDB Relation转换为DataFrame后输出:
import duckdb import pandas as pd # 配置Pandas显示所有列和足够宽度 pd.set_option("display.max_columns", None) pd.set_option("display.width", 10000) con = duckdb.connect() rel = con.sql("SELECT * FROM your_table") # 转换为DataFrame并打印 print(rel.to_df())
方法3:直接打印Relation对象
设置好DuckDB的全局配置后,直接打印Relation对象也会遵循无截断的显示规则:
import duckdb con = duckdb.connect() con.execute("SET max_columns = -1") con.execute("SET max_width = 10000") rel = con.sql("SELECT * FROM your_table") print(rel)
内容的提问来源于stack exchange,提问作者Ludicium
相关产品推荐
相关产品推荐

