Google BigQuery中的参数化查询错误

普拉莫德·斯里帕达(Pramod Sripada)

我正在尝试使用Google BigQuery Python API编写查询。我将项目ID和数据集名称设置为参数。我研究了Google Github.io上的参数化查询实现但是执行查询时出现以下错误

google.api_core.exceptions.BadRequest: 400 Invalid table name: @project:@dataset.AIRPORTS

我很困惑是否可以用参数替换项目,数据集名称。

下面是我的代码

from google.cloud import bigquery

client = bigquery.Client.from_service_account_json('service_account.json')
project = client.project

datasets = list(client.list_datasets())
dataset = datasets[0]
dataset_id = dataset.dataset_id

QUERY = (
        'SELECT * '
        'FROM `{}.{}.AIRPORTS`'.format(project, dataset_id)
    )

query = (
        'SELECT * '
        'FROM `@[email protected]`'
    )

TIMEOUT = 30
param1 = bigquery.ScalarQueryParameter('project', 'STRING', project)
param2 = bigquery.ScalarQueryParameter('dataset', 'STRING', dataset_id)
job_config = bigquery.QueryJobConfig()
job_config.query_parameters = [param1, param2]

query_job = client.query(
    query, job_config=job_config)

iterator = query_job.result(timeout=TIMEOUT)
rows = list(iterator)

print(rows)
艾略特·布罗萨德(Elliott Brossard)

您只能使用参数代替表达式,例如column_name = @param_value在WHERE子句中。表名称不是表达式,因此您不能使用参数代替项目或数据集名称。还请注意,您需要使用标准SQL才能使用参数。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

是什么导致Google BigQuery查询中的大量开销?

尝试使用Python查询Google BigQuery时出现错误“需要登录”

在Google BigQuery API中,查询响应的默认超时是多少?

是否支持Dart for Google Endpoints中的查询参数?

Google Cloud Datalab中的BigQuery-获取查询文本吗?

Google BQ:运行参数化查询,其中参数变量是BQ表目标

所有保存的个人查询都在Google BigQuery中消失了

使用SUM过滤结果时,Google BigQuery相关子查询错误

如何在Google BigQuery中设置用户的查询配额

我无法查询Google BigQuery表中的重复字段

如何在Google Bigquery中触发按需计划查询

如何在Google BigQuery中将多字串作为参数传递给bq查询命令?

google bigQuery子查询加入

如何在Google BigQuery中查询github文件大小?

使用Python在Google BigQuery中创建每周计划的查询作业

Google Play转移频率错误-Google BigQuery

如何根据自定义参数在表名称中使用类似于Python的字符串格式查询Google Data Studio中的bigquery表?

在Google Appengine中的app.yaml中定义查询参数

Google BigQuery-github时间轴表中的奇怪查询错误

Google BigQuery查询速度很慢

Google bigquery可视化

在Google BigQuery中通过子查询进行自我加入

Google BigQuery可捕获的致命错误:参数2已通过

在Google App Engine中通过Python查询Google Bigquery

参数化查询中的JavaScript错误

查询在Google BigQuery中与众不同

Python Google BigQuery 参数化 SELECT

google bigquery 查询 firebase 函数

在 BigQuery 中查询 Google Analytics 事件:事件错误消息