BigQuery Python 客户端库 - 命名参数错误
Posted
技术标签:
【中文标题】BigQuery Python 客户端库 - 命名参数错误【英文标题】:BigQuery Python Client Library - Named Parameters Error 【发布时间】:2018-07-02 12:06:27 【问题描述】:我正在尝试使用名为“参数”的 Python 客户端库编写一个简单的查询,但一直遇到错误。
当我尝试运行代码时,我不断收到“未声明的查询参数”。我错过了什么吗?
我的代码:
import datetime
import os
from google.cloud import bigquery
os.environ["GOOGLE_APPLICATION_CREDENTIALS"]=<path>
client = bigquery.Client(project='project_id')
query = """
SELECT * from `<project_id>.<dataset_id>.*`
WHERE CAST(REGEXP_EXTRACT(_TABLE_SUFFIX, r"^(\d8)$") AS INT64) = @date
limit 10;
"""
query_params = [
bigquery.ScalarQueryParameter(
'date',
'INT64',
int((datetime.date.today().strftime('%Y%m%d'))
)
]
job_config = bigquery.QueryJobConfig()
job_config.query_parameters = query_params
query_job = client.query(
query,
location = 'US')
for row in query_job:
print(row)
assert query_job.state == 'DONE'
【问题讨论】:
【参考方案1】:您似乎缺少将 job_config
输入到 client.query()
方法的参数中。你应该有:
query_job = client.query(
query,
location = 'US',
job_config=job_config)
Official docs here。
【讨论】:
以上是关于BigQuery Python 客户端库 - 命名参数错误的主要内容,如果未能解决你的问题,请参考以下文章
Google BigQuery API(Python 客户端库)> 查询数据(异步)
如何使用 PHP bigquery 客户端库对 bigquery 数据进行分页?
BigQuery 使用 Python Google Cloud 库将日期插入“DATE”类型字段
使用 Python,将 google.cloud.bigquery.job.query.QueryJob 输出保存到本地 JSON 文件