Datalab не заполняет таблицы bigQuery

Привет, у меня проблема при использовании записных книжек ipython на datalab.

Я хочу записать результат таблицы в таблицу 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)

person Ces_lab3    schedule 26.02.2016    source источник


Ответы (1)


Вызов insert_data выполнит HTTP POST и вернется, как только это будет сделано. Однако для отображения данных в таблице BQ может потребоваться некоторое время (до нескольких минут). Попробуйте немного подождать, прежде чем использовать стол. Возможно, мы сможем решить эту проблему в будущем обновлении. см. Здесь

Хакерский способ блокировки до готовности прямо сейчас должен выглядеть примерно так:

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)
person Graham Wheeler    schedule 27.02.2016