将大型数据集导入 Cloud Datalab

Getting large datasets into Cloud Datalab

是否可以将大型数据集放入 pandas DataFrame?

我的数据集大约是。 1.5 Gb 未压缩(用于聚类的输入),但是当我尝试使用 bq.Query(...) select Table 的内容时,它会抛出异常:

RequestException: Response too large to return. Consider setting allowLargeResults to true in your job configuration. For more information, see https://cloud.google.com/bigquery/troubleshooting-errors

查看 https://cloud.google.com/bigquery/querying-data?hl=en 其中指出,

You must specify a destination table.

感觉发送大型查询的唯一地方是另一个 Table(然后单击导出到 GCS 并下载)。

随着分类行被写回数据库,还会有一次(可能是大量的回写)。

相同的数据集在我的 16Gb 笔记本电脑上运行良好(几分钟之内),但随着我们的数据移动到云端,我正在考虑迁移到 Datalab。

非常感谢,感谢您的帮助

如果您的结果已经在 Table 中,您可以使用 Table.to_dataframe()

否则,您将需要 运行 使用 execute() 进行查询,并根据您的说明指定目的地 table 名称,并且 allow_large_results=True 参数(之后您可以执行to_dataframe() 调用如上)。

请注意,您可能对此有疑问; 运行 是 Python 内核的默认 VM 非常基础。您可以使用 URL 参数部署功能更强大的虚拟机;例如:

同时,如前所述,您可以通过一些 URL 参数将 Datalab 部署到更大的 VM。例如:

http://datalab.cloud.google.com?cpu=2&memorygb=16