为什么我的collab虚拟机没有能力在bigquery中查询某些内容,但它可以处理相同的查询结果?

问题描述 投票:0回答:1

我知道我的问题有点模糊,但我不知道如何用不同的方式来表达它。

我在最近的分队中开始使用 GCP,但我在掌握一些事情时遇到了问题。

这一次,我不明白为什么我可以使用

处理数据
query = f"SELECT * FROM {dataset_name}"
    dataset = client.query(query).to_dataframe()

但是如果我尝试执行在 bigquery 中创建 dataset_name 的实际查询(绕过预先保存的需要),机器就会超时(或内存不足)。 我认为当我做像 client.query() 这样的事情时,繁重的工作将由 bigquery 和 colab (或 vertex 或您正在使用的任何东西)承担,只会冷静下来并等待获得输出。

什么给予?

python google-bigquery google-colaboratory
1个回答
0
投票

我认为问题不在于处理发生在哪里,而在于处理后如何处理数据。当您运行 client.query(query).to_dataframe() 时,BigQuery 会执行查询,然后将整个结果集传输到您的 Colab 实例。我想这就是瓶颈出现的地方。

您可以尝试的是在 BigQuery 本身内执行尽可能多的处理。无需将整个结果集拉入 DataFrame,而是将结果导出到 Cloud Storage 等目的地。然后,您可以在 Colab 环境中以较小的块处理数据或使用专为大型数据集设计的工具。

© www.soinside.com 2019 - 2024. All rights reserved.