如何从 BigQuery 表中提取所有列名的列表?
Posted
技术标签:
【中文标题】如何从 BigQuery 表中提取所有列名的列表?【英文标题】:How to extract list of all columns name from BigQuery tables? 【发布时间】:2021-11-05 05:57:04 【问题描述】:我有包含多个表的数据集。我想检查一下
-
唯一列列表
所有表的列列表。
我试过了: 这给了我 df 然后列出所有表名
%%bigquery --project ProjectID df
SELECT* EXCEPT(is_typed) FROM tenjin.INFORMATION_SCHEMA.TABLES
#sort list a-z of all the tables inside tenjin
all_tables = sorted(list(df.table_name))
现在我想运行一个循环或 SQL 查询,它可以给我所有列的名称:
我试过了
for table in all_tables:
print("bring magic unique columns list here")
print("columnslist")
【问题讨论】:
【参考方案1】:有几种方法,但根据您的需要,我认为您可以通过查询<dataset-name>.INFORMATION_SCHEMA.COLUMNS
跳过几个步骤,例如
%%bigquery --project ProjectID df
SELECT * FROM tenjin.INFORMATION_SCHEMA.COLUMNS
result = df.groupby("table_name").column_name.apply(list).to_dict()
to_dict
调用是可选的,但可能会使下游的生活更轻松。您可以按如下方式找回您的all_tables
,例如:
all_tables = sorted(list(result.keys()))
【讨论】:
以上是关于如何从 BigQuery 表中提取所有列名的列表?的主要内容,如果未能解决你的问题,请参考以下文章
如何从 .hdf5 文件表中提取列名并根据指定的列名提取特定行数据?