如何将 DataFrame 存储到 Google DataLab 中的 BigTable 中?
How do I store a DataFrame into a BigTable in Google DataLab?
我有一个 DataFrame df。我创建了一个 BigQuery table.
# 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
有一个 Pandas 函数 [to_gbq()][1] 我想用它来存储 DataFrame。
df.to_gbq(df, 'ids.suri', project)
这个returns一个"Not found exception"虽然table存在。我刚刚在上面的代码中创建了它。有人可以帮我解决问题到底是什么吗?
NotFoundException: Invalid Table Name. Should be of the form
'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
您将 Cloud Datalab 方式与 gbq 方式混为一谈。你应该使用一个或另一个。要从 Cloud Datalab 执行此操作,创建数据后,您只需使用:
suri_table.insert_data(df)
如果你想包含索引等,有几个选项;见 http://googlecloudplatform.github.io/datalab/gcp.bigquery.html#gcp.bigquery.Table.insert_data
我有一个 DataFrame df。我创建了一个 BigQuery table.
# 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
有一个 Pandas 函数 [to_gbq()][1] 我想用它来存储 DataFrame。
df.to_gbq(df, 'ids.suri', project)
这个returns一个"Not found exception"虽然table存在。我刚刚在上面的代码中创建了它。有人可以帮我解决问题到底是什么吗?
NotFoundException: Invalid Table Name. Should be of the form '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
您将 Cloud Datalab 方式与 gbq 方式混为一谈。你应该使用一个或另一个。要从 Cloud Datalab 执行此操作,创建数据后,您只需使用:
suri_table.insert_data(df)
如果你想包含索引等,有几个选项;见 http://googlecloudplatform.github.io/datalab/gcp.bigquery.html#gcp.bigquery.Table.insert_data