现有数据集的 BigQuery API 查询作业返回 404

Posted

技术标签:

【中文标题】现有数据集的 BigQuery API 查询作业返回 404【英文标题】:BigQuery API query job return 404 for existing dataset 【发布时间】:2020-06-10 12:02:43 【问题描述】:

我在 Python 中使用 BigQuery API 时遇到了问题。

我已经设置了一个 bigquery 客户端 bigquery.Client(credentials=credentials, project=project_id, location=location) 它像预期的那样工作。 datasets = list(client.list_datasets()) 返回项目中的数据集列表。

%%bigquery --project project_id df
SELECT *
FROM `cached.csv_reports_sessions_report`

Magics 请求有效并创建所需的数据框。

但是,如果我尝试从这样的查询作业创建相同的数据框:

sql = """
    SELECT *
    FROM `cached.csv_reports_sessions_report`
    LIMIT 100
"""
df = client.query(sql, project=project_id).to_dataframe()

我收到以下错误:404 Not found: Dataset project_id:cached was not found in location europe-west3。该位置是项目和数据集的正确位置。

我尝试过使用包含 project_id 的完整路径,如下所示: project_id.cached.csv_reports_sessions_report 仍然得到同样的错误。

我做错了什么?

【问题讨论】:

【参考方案1】:

我发现了问题。我已将我的位置声明为“europe-west3”,这是实际位置,但对于查询工作来说,它似乎太具体了。在简单地将位置声明为“欧盟”后,它开始正常工作

【讨论】:

以上是关于现有数据集的 BigQuery API 查询作业返回 404的主要内容,如果未能解决你的问题,请参考以下文章

通过 Google BigQuery API 将查询结果导出为 JSON

javascript HTTP Archive数据集的BigQuery查询示例。

在bigquery中以编程方式更新/插入数据

如何获取有关 BigQuery 中正在使用/查询的视图和数据集的使用数据?

BQ API ::查询与插入('查询')作业

如何在 Google Bigquery 中创建动态更改数据集的查询?