我編寫了一個運行某個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