Datalab不会填充bigQuery表

时间:2016-02-26 16:29:39

标签: google-bigquery google-cloud-datalab

您好,我在datalab上使用ipython笔记本时遇到了问题。

我想将表的结果写入bigQuery表但是它不起作用,任何人都说使用insert_data(dataframe)函数,但它不会填充我的表。 为了简化问题,我尝试读取一个表并将其写入刚刚创建的表(具有相同的模式),但它不起作用。谁能告诉我哪里错了?

import gcp
import gcp.bigquery as bq

#read the data
df = bq.Query('SELECT 1 as a, 2 as b FROM [publicdata:samples.wikipedia] LIMIT 3').to_dataframe()

#creation of a dataset and extraction of the schema
dataset = bq.DataSet('prova1')
dataset.create(friendly_name='aaa', description='bbb')
schema = bq.Schema.from_dataframe(df)

#creation of the table
temptable = bq.Table('prova1.prova2').create(schema=schema, overwrite=True)

#I try to put the same data into the temptable just created
temptable.insert_data(df)

1 个答案:

答案 0 :(得分:1)

调用insert_data将执行HTTP POST并在完成后返回。但是,数据显示在BQ表中可能需要一些时间(最多几分钟)。在使用该表之前,请稍等片刻。我们可能会在将来的更新see this

中解决此问题

现在阻止直到准备好的hacky方式应该是这样的:

import time
while True:
  info = temptable._api.tables_get(temptable._name_parts)
  if 'streamingBuffer' not in info:
    break
  if info['streamingBuffer']['estimatedRows'] > 0:
    break
  time.sleep(5)