【发布时间】:2017-12-05 16:36:14
【问题描述】:
我尝试了两种方法将 Google BigQuery 中的一个大表(大约 50,000,000 行,18GB)导入到 Google Datalab 的数据框中,以便使用 Tensorflow 进行机器学习。
首先我使用(所有需要的模块都被导入):
data = bq.Query('SELECT {ABOUT_30_COLUMNS...} FROM `TABLE_NAME`').execute().result().to_dataframe()
然后它将保持Running... 直到永远。
即使我做了LIMIT 1000000,它也不会改变。
我第二次使用:
data = pd.read_gbq(query='SELECT {ABOUT_30_COLUMNS...} FROM `TABLE_NAME` LIMIT 1000000', dialect ='standard', project_id='PROJECT_ID')
一开始运行良好,但是当它达到大约 450,000 行时(使用百分比和总行数计算),它就卡在了:
Got page: 32; 45.0% done. Elapsed 293.1 s.
我找不到如何在 read_gbq() 中启用 allowLargeResults。 正如其document 所说,我尝试:
data = pd.read_gbq(query='SELECT {ABOUT_30_COLUMNS...} FROM `TABLE_NAME` LIMIT 1000000', dialect ='standard', project_id='PROJECT_ID', configuration = {'query': {'allowLargeResult': True}})
然后我得到:
read_gbq() got an unexpected keyword argument 'configuration'
这就是我什至未能将 1,000,000 行导入 Google Cloud Datalab 的原因。 我实际上想导入 50 倍的数据大小。
有什么想法吗?
谢谢
【问题讨论】:
标签: pandas google-bigquery google-cloud-datalab