空格在使用Python的BigQuery中引起问题

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

我已经获得了以下Python代码来检索BigQuery数据集。然后,我在Jupyter Notebook on kaggle上执行两个查询working_querybad_query。唯一的区别是第3行后添加了空格...posts_questions` as q使bad_query失败,并显示以下消息

Query exceeded limit for bytes billed: 10000000000. 24460132352 or higher required.

我知道启用了成本控制,但是在这里看不到这可能是个问题。我将来如何避免此类陷阱,有人可以解释这个问题?

from google.cloud import bigquery

client = bigquery.Client()
dataset_ref = client.dataset("stackoverflow", project="bigquery-public-data")
dataset = client.get_dataset(dataset_ref)

safe_config = bigquery.QueryJobConfig(maximum_bytes_billed=10**10)

answers_query_job = client.query(working_query, job_config=safe_config) 
answers_query_job.to_dataframe()

working_query = """
                SELECT a.id, a.body, a.owner_user_id
                FROM `bigquery-public-data.stackoverflow.posts_answers` AS a
                INNER JOIN `bigquery-public-data.stackoverflow.posts_questions` AS q
                    ON q.id = a.parent_id
                WHERE q.tags LIKE '%bigquery%'
                """
bad_query = """
                SELECT a.id, a.body, a.owner_user_id
                FROM `bigquery-public-data.stackoverflow.posts_answers` AS a
                INNER JOIN `bigquery-public-data.stackoverflow.posts_questions` AS q 
                    ON q.id = a.parent_id
                WHERE q.tags LIKE '%bigquery%'
                """
python sql google-bigquery whitespace
2个回答
0
投票

您可能已启用成本控制:documentation

此错误意味着您的查询要扫描的字节数超过了“已计费的最大字节数”中设置的限制。

您能可靠地重现此错误吗?看起来查询中的空格与BigQueryrols中的成本竞争没有任何关系。当数据更大或引入成本控制时,这可能只是巧合。


0
投票

我已经使用您的两个查询执行了一些测试,并且它们以相同的方式执行。

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