如何从 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 表中提取所有列名的列表?的主要内容,如果未能解决你的问题,请参考以下文章

如何从已分区的 BigQuery 表中提取单个分区?

如何从 .hdf5 文件表中提取列名并根据指定的列名提取特定行数据?

查找要插入 BigQuery 的列名

我们可以从 Google BigQuery 中的特定表中获取列名吗?

从连接表列表中选择唯一的列名

PostgreSQL - 从数据库表中提取列名、数据类型和样本值