在使用BigQuery API查询作业时,如果返回404错误,即使数据集存在,可能是由于以下几个原因引起的:
from google.oauth2 import service_account
credentials = service_account.Credentials.from_service_account_file(
'path/to/service-account-file.json'
)
# 创建BigQuery客户端
from google.cloud import bigquery
client = bigquery.Client(credentials=credentials)
数据集路径问题:请确保您在查询作业请求中提供了正确的数据集路径。数据集路径应该是完整的,包括项目ID和数据集ID。例如:"project_id.dataset_id"。
作业ID问题:请确保您在查询作业请求中提供了正确的作业ID。作业ID应该是唯一的,可用于跟踪和检索查询作业的状态。
以下是一个使用BigQuery API查询作业的示例代码,可以帮助您解决404错误:
from google.oauth2 import service_account
from google.cloud import bigquery
# 从服务帐号文件中获取凭据
credentials = service_account.Credentials.from_service_account_file(
'path/to/service-account-file.json'
)
# 创建BigQuery客户端
client = bigquery.Client(credentials=credentials)
# 查询作业的配置
job_config = bigquery.QueryJobConfig()
job_config.use_legacy_sql = False
# 构建查询语句
query = """
SELECT *
FROM `project_id.dataset_id.table_id`
LIMIT 10
"""
# 提交查询作业
query_job = client.query(query, job_config=job_config)
# 等待查询作业完成
query_job.result()
# 检查查询结果
for row in query_job:
print(row)
请根据您的具体情况修改代码中的项目ID、数据集ID、表ID和服务帐号文件路径。通过这种方式,您应该能够成功执行BigQuery API的查询作业,并获得正确的结果。