【发布时间】:2016-03-29 21:33:05
【问题描述】:
相关问题:Bigquery add columns to table schema using BQ command line tools
我想使用 BigQuery Python API 在 BigQuery 中的现有表中添加一个新列(更新现有表的架构)。
但是我的代码似乎不起作用。
这是我的代码:
flow = flow_from_clientsecrets('secret_key_path', scope='my_scope')
storage = Storage('CREDENTIAL_PATH')
credentials = storage.get()
if credentials is None or credentials.invalid:
credentials = tools.run_flow(flow, storage, tools.argparser.parse_args([]))
http = httplib2.Http()
http = credentials.authorize(http)
bigquery_service = build('bigquery', 'v2', http=http)
tbObject = bigquery_service.tables()
query_body = {'schema': {'name':'new_column_name', 'type':'STRING'}}
tbObject.update(projectId='projectId', datasetId='datasetId', tableId='tableId', body=query_body).execute()
它返回Provided schema doesn't match existing table's schema 错误。
谁能给我一个有效的 Python 示例?
非常感谢!
【问题讨论】:
-
您应该提供整个架构,而不仅仅是新字段
-
嗨 Mikhail,您是指现有表的整个架构吗?
-
是的,带有新字段。所以 api 将负责添加新的。但要做到这一点,需要呈现整个架构
-
嗨,米哈伊尔,我还有一个问题,我知道 BQ 没有 SET 和 UPDATE 方法,只是想知道是否向现有表添加新列,如何设置新列的值现有表?或者我必须删除现有表并使用列值创建一个新表?
-
啊,我明白了,我会用整个架构再试一次