2015-11-23 2 views
0

У меня есть DataFrame df. Я создаю таблицу BigQuery.Как хранить DataFrame в BigTable в Google DataLab?

# Create the schema, using the convenience of basing it on example DataFrame 
schema = bq.Schema.from_dataframe(df) 

# Create the dataset 
bq.DataSet('ids').create() 

# Create the table 
suri_table = bq.Table('ids.suri').create(schema = schema, overwrite = True) 


project = gcp.Context.default().project_id 

Существует функция Панды [to_gbq()] [1], которые я хочу использовать для хранения DataFrame.

df.to_gbq(df, 'ids.suri', project) 

Это возвращает «Не найденное исключение», хотя таблица существует. Я только что создал его в коде выше. Может кто-нибудь помочь мне в том, что проблема на самом деле?

NotFoundException: Недопустимое имя таблицы. Должно быть в форме 'datasetId.tableId'

Если я делаю:

from pandas.io import gbq 

df.to_gbq('ids.suri', project_id=projectid) 

я получаю:

/usr/lib/python2.7/dist-packages/pkg_resources.pyc in resolve(self, requirements, env, installer, replace_conflicting) 
    637       # unfortunately, zc.buildout uses a str(err) 
    638       # to get the name of the distribution here.. 
--> 639       raise DistributionNotFound(req) 
    640     to_activate.append(dist) 
    641    if dist not in req: 

DistributionNotFound: google-api-python-client 

    [1]: http://pandas.pydata.org/pandas-docs/version/0.17.0/generated/pandas.io.gbq.to_gbq.html 

ответ

1

Вы приравнивая путь Облако DATALAB с гБк способом. Вы должны использовать тот или иной. Для того, чтобы сделать это с Cloud DATALAB после того, как вы создали данные, вы можете просто использовать:

suri_table.insert_data(df) 

Есть несколько вариантов, если вы хотите включить индекс и т.д.; см. http://googlecloudplatform.github.io/datalab/gcp.bigquery.html#gcp.bigquery.Table.insert_data

Смежные вопросы