我编写了一个运行某个SELECT查询异步的python脚本。运行该脚本后的第一时间,它总是错误出来后,出现以下错误:bigquery python client.run_async_query给出错误:409已经存在
google.cloud.exceptions.Conflict: 409 Already Exists: Job ps-bigdata:vci-temp-sales-query-job (POST https://www.googleapis.com/bigquery/v2/projects/ps-bigdata/jobs)
下面的代码片段:
from google.cloud import bigquery
google_auth_json_file = './myprojectauth.json'
client = bigquery.Client.from_service_account_json(google_auth_json_file)
project = 'myProject'
dataset = 'myDataset'
ds = client.dataset(dataset)
query = "SELECT X,y,z FROM mytable;"
#--- Clear/create temp table
temp_table_name = 'myTempTable'
temp_tbl = myCreateTempTableFunction(client, project, dataset, temp_table_name)
#--- Create an async query job
job_name = 'vci-temp-sales-query-job'
job = client.run_async_query(job_name, query)
job.destination = temp_tbl
job.write_disposition = 'WRITE_TRUNCATE'
job.begin()
这个脚本在“job.begin失败() “线。我不知道在会议结束或工作执行之后,有名的工作会继续存在。如何检查已命名作业是否已存在,如果存在,如何删除现有命名作业以创建新作业?或者我必须在任何时候创建随机或独特的作业名称,我运行一个异步作业?
你可以用'job.exists()'检查一个作业是否存在。如果它存在,那么你可以用'job.cancel()'来取消它。你可能想在取消之前检查'job.ended'。 – Abdou