我用python3编写了这段代码。
from google.cloud import bigquery
import json
timeframe = '2006'
client = bigquery.Client()
query_job = client.query("SELECT * FROM `fh-bigquery:reddit_comments.{}` LIMIT 05".format(timeframe))
results = query_job.result()
设置完https://cloud.google.com/bigquery/create-simple-app-api中的环境变量后
set GOOGLE_APPLICATION_CREDENTIALS=[PATH]
我收到以下错误:
google.api_core.exceptions.BadRequest: 400 GET https://www.googleapis.com/bigquery/v2/projects
/ravischat-214114/queries/f936b73e-cf46-4fc5-b161-b05474c41560?maxResults=0:
Project name needs to be separated by dot from dataset name,
not by colon in table name "fh-bigquery:reddit_comments.2006".
任何解决错误的帮助将不胜感激!
如果我需要直接在代码中设置身份验证JSON文件的路径,如果有人可以告诉我该怎么做,我将不胜感激。
答案 0 :(得分:4)
根据显示的错误,更改:
`fh-bigquery:reddit_comments.2006`
收件人:
`fh-bigquery.reddit_comments.2006`
答案 1 :(得分:0)
BigQuery 使用两种 SQL 方言,Legacy SQL 和 Standard SQL。默认情况下,方言设置为标准 SQL。可以使用以下行进行更改
将 use_legacy_sql 设置为 True 以使用旧版 SQL 语法。
job_config = bigquery.QueryJobConfig(use_legacy_sql=True)
在这种情况下,fh-bigquery:reddit_comments.2006
是有效且有效的。
如果您使用的是标准 SQL 方言,则需要将其更改为fh-bigquery.reddit_comments.2006
(将冒号替换为点)。