如何使用 Python BigQuery API 追加到 BigQuery 中的表

Posted

技术标签:

【中文标题】如何使用 Python BigQuery API 追加到 BigQuery 中的表【英文标题】:How to append to a table in BigQuery using Python BigQuery API 【发布时间】:2017-03-08 15:13:39 【问题描述】:

我已经能够使用pandas-gbq package 从 Pandas 数据框追加/创建表。特别是使用to_gbq method。但是,当我想使用 BigQuery 网页界面检查表格时,我会看到以下消息:

此表在流缓冲区中的记录可能在预览中不可见。

我不是唯一一个要问的人,而且似乎是there's no solution to this yet。

所以我的问题是: 1. 是否有解决上述问题(即数据在Web UI中不可见)的解决方案。 2. 如果 (1) 没有解决方案,还有其他方法可以使用 Python BigQuery API 将数据附加到现有表吗? (注意文档说我可以通过running an asynchronous query 和使用writeDisposition=WRITE_APPEND 来实现这一点,但link that it provides 没有解释如何使用它,我无法解决)。

【问题讨论】:

【参考方案1】:

该消息只是一个 UI 通知,它不应阻碍您。

要检查数据,请运行一个简单的查询并查看它是否存在。

要仅读取仍在 Streaming Buffer 中的数据,请使用以下查询:

#standardSQL    
SELECT count(1) 
FROM `dataset.table` WHERE _PARTITIONTIME is null

【讨论】:

你是对的。我的所有数据都在那里,但如果没有此通知并正常查看数据,那就太好了。有没有办法做到这一点,而不必在表上运行额外的查询? 当预览不适合您时,您需要运行查询。如果您能够重建作品并证明有时预览不起作用的原因,那么您可以提交问题。

以上是关于如何使用 Python BigQuery API 追加到 BigQuery 中的表的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 BigQuery Python API 附加查询结果

如何使用 python API 在 bigquery 中创建新视图?

如何使用调用 UDF 的 Python 脚本来使用 BigQuery API

如何使用 Google BigQuery python API 获得超过 100,000 个响应结果?

使用 python 和 BigQuery API 获取 BigQuery 数据集中的表列表

如何使用Appengine和来自API的Python脚本流数据将数据流式传输到Google Cloud BigQuery?