Datalab 不填充 bigQuery 表

Datalab does not populate bigQuery tables

嗨,我在数据实验室上使用 ipython 笔记本时遇到问题。

我想将 table 的结果写入 bigQuery table,但它不起作用,有人说要使用 insert_data(dataframe) 函数,但它不起作用填充我的 table。 为了简化问题,我尝试读取 table 并将其写入刚刚创建的 table (具有相同的架构),但它不起作用。谁能告诉我哪里错了?

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)

调用 insert_data 将在完成后执行 HTTP POST 和 return。但是,数据可能需要一些时间才能显示在 BQ table 中(最多几分钟)。请稍等片刻再使用 table。我们可能会在未来的更新中解决这个问题,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)