Google bigquery 我们可以从GoogleBigQuery中的特定表中获取列名吗?
我们可以从Google BigQuery中的特定表中获取列名吗 让我知道此活动的查询 我试过了,但没有结果Google bigquery 我们可以从GoogleBigQuery中的特定表中获取列名吗?,google-bigquery,Google Bigquery,我们可以从Google BigQuery中的特定表中获取列名吗 让我知道此活动的查询 我试过了,但没有结果 SELECT column_name FROM publicdata:samples.shakespeare OR SELECT schema FROM publicdata:samples.shakespeare 1.您可以使用命令行工具(): bq节目: $ bq show publicdata:samples.shakespeare tableId Last
SELECT column_name FROM publicdata:samples.shakespeare
OR
SELECT schema FROM publicdata:samples.shakespeare
1.您可以使用命令行工具(): bq节目:
$ bq show publicdata:samples.shakespeare
tableId Last modified Schema
------------- ----------------- ------------------------------------
shakespeare 01 Sep 13:46:28 |- word: string (required)
|- word_count: integer (required)
|- corpus: string (required)
|- corpus_date: integer (required)
2.BigQuery浏览器工具:
3.或者使用BigQuery API:1。您可以使用命令行工具(): bq节目:
$ bq show publicdata:samples.shakespeare
tableId Last modified Schema
------------- ----------------- ------------------------------------
shakespeare 01 Sep 13:46:28 |- word: string (required)
|- word_count: integer (required)
|- corpus: string (required)
|- corpus_date: integer (required)
2.BigQuery浏览器工具:
3.或者使用BigQuery API:如果我理解正确,您希望执行tables.list或tables.get而不是jobs.query 这是它在google apps脚本中的工作方式:
var results = BigQuery.Tables.list(projectId, datasetId, optionalArgs);
或通过API:
GET https://www.googleapis.com/bigquery/v2/projects/projectId/datasets/datasetId/tables
否则,您可以像这样进行查询,从[]限制0中选择*并编写一些查看列名的过程。如果我理解正确,您希望执行tables.list或tables.get,而不是jobs.query 这是它在google apps脚本中的工作方式:
var results = BigQuery.Tables.list(projectId, datasetId, optionalArgs);
或通过API:
GET https://www.googleapis.com/bigquery/v2/projects/projectId/datasets/datasetId/tables
否则,您可以像这样查询SELECT*FROM[]limit 0并编写一些过程来查看列名。我使用Java获得了结果:
Tables tableRequest = bigquery.tables();
Table table = tableRequest.get(projectName,datasetName,tableName).execute();
List<TableFieldSchema> fields = table.getSchema().getFields();
Tables tableRequest=bigquery.Tables();
Table Table=tableRequest.get(projectName,datasetName,tableName).execute();
列表字段=table.getSchema().getFields();
我使用Java获得了结果:
Tables tableRequest = bigquery.tables();
Table table = tableRequest.get(projectName,datasetName,tableName).execute();
List<TableFieldSchema> fields = table.getSchema().getFields();
Tables tableRequest=bigquery.Tables();
Table Table=tableRequest.get(projectName,datasetName,tableName).execute();
列表字段=table.getSchema().getFields();
在Jupyter中使用python的示例:
SERVICE_ACCOUNT = 'sa_bq.json'
!pip install google-cloud
!pip install google-api-python-client
!pip install oauth2client
from google.cloud import bigquery
client_bq = bigquery.Client.from_service_account_json(SERVICE_ACCOUNT)
table = client_bq.get_table('bigquery-public-data.samples.shakespeare')
print(list(c.name for c in table.schema))
在Jupyter中使用python的示例:
SERVICE_ACCOUNT = 'sa_bq.json'
!pip install google-cloud
!pip install google-api-python-client
!pip install oauth2client
from google.cloud import bigquery
client_bq = bigquery.Client.from_service_account_json(SERVICE_ACCOUNT)
table = client_bq.get_table('bigquery-public-data.samples.shakespeare')
print(list(c.name for c in table.schema))
在经典用户界面上,无需任何查询,您可以按照以下步骤进行操作:
- 单击左侧面板上的蓝色向下箭头
- 切换到项目,然后显示项目…
- 在项目ID上,写下项目的名称(在您的案例中,您有
,您的项目是publicdata:samples.shakespeare
)publicdata
- 现在,该项目显示在左侧面板上
- 选择数据集(在您的情况下,它是示例)
- 选择表格(在您的例子中是莎士比亚) 最后,在屏幕的中间,你应该看到三个标签:模式,细节,预览。李>
- 单击左侧面板上的蓝色向下箭头
- 切换到项目,然后显示项目…
- 在项目ID上,写下项目的名称(在您的案例中,您有
,您的项目是publicdata:samples.shakespeare
)publicdata
- 现在,该项目显示在左侧面板上
- 选择数据集(在您的情况下,它是示例)
- 选择表格(在您的例子中是莎士比亚) 最后,在屏幕的中间,你应该看到三个标签:模式,细节,预览。李>
选择列名称、数据类型
来自“bigquery公共数据.示例.信息\u架构.列”
其中,表_name='shakespeare'
它给你:
+-------------+-----------+
| column_name | data_type |
+-------------+-----------+
| word | STRING |
| word_count | INT64 |
| corpus | STRING |
| corpus_date | INT64 |
+-------------+-----------+
用于使用SQL获取列名:
选择列名称、数据类型
来自“bigquery公共数据.示例.信息\u架构.列”
其中,表_name='shakespeare'
它给你:
+-------------+-----------+
| column_name | data_type |
+-------------+-----------+
| word | STRING |
| word_count | INT64 |
| corpus | STRING |
| corpus_date | INT64 |
+-------------+-----------+
所以你想从所有表中选择列名称,其中表='Shaspeare'和模式='publicdata:samples'?所以你想从所有表中选择列名称,其中表='Shaspeare'和模式='publicdata:samples'?我在使用javascript,所以有任何类似于此var请求的方法=字段({'projectId':'publicdata','datasetId':'samples','tableId':'shakespeare'});request.execute(函数(响应){console.log(响应);});如果你有任何解决方案,请告诉我??感谢选项3.BigQuery API:。这是REST API,因此,您可以在干净的javascript或jQuery中使用。我认为您必须使用gapi.client.request我使用的是javascript,所以有任何类似于var request=gapi.client.bigquery.schema.fields的方法({'projectId':'publicdata','datasetId':'samples','tableId':'shakespeare')); request.execute(函数(响应){console.log(响应);});如果你有任何解决方案,请告诉我??感谢选项3.BigQuery API:。这是REST API,因此,您可以在干净的javascript或jQuery中使用。我认为您必须使用gapi.client.request。我的想法是选择limit 1并只使用列名,但我得到的错误是“通过此查询,您将为表中的所有数据付费(即使您的查询包含limit子句)。”我的想法是选择limit 1并只使用列名,但我得到的错误是“通过此查询,您将为表中的所有数据付费(即使您的查询包含limit子句)。”自最新库版本以来的更新,以使用表:
>tr=bigquery.table.TableReference.from\u string('bigquery-public-data.samples.shakespeare')>>table=client\u bq.get\u table(tr)
自最新库版本以来的更新,要使用该表:>tr=bigquery.table.TableReference.from\u string('bigquery-public-data.samples.shakespeare')>>table=client\u bq.get\u table(tr)