2016-09-03 38 views

回答

1

我認爲這個例子缺少分析作業完成後的錯誤(「Load Is Done」)。
作業處於PENDING或RUNNING或DONE狀態。
該工作已經完成但不知道它是成功還是失敗

要知道這樣一個事實 - 你應該使用jobId,然後使用Jobs: get得到這份工作的status.state。在這裏您可以看到作業是否完成(完成)或尚未完成(正在處理或正在運行),因此直到它完成並且完成時 - 您可以查看最後一個錯誤的status.errorResult或查看運行期間遇到的所有錯誤的status.errors工作

+0

能否請您發佈的代碼? – Vetri

+0

如果你真的想學點東西,你應該接受答案並閱讀其中的所有鏈接和例子,並嘗試自己提出代碼。當然,你仍然會有一些你需要幫助的東西 - 所以你會問下一個具體的問題。在這種情況下,我會更樂意幫助更多。從我看到你最初的問題 - 我已經回答了。 –

+0

謝謝米哈伊爾。我已經使用你的答案發布了代碼。 – Vetri

0

添加到米哈伊爾的答案,這裏是代碼,

JobReference jobRef = insert.execute().getJobReference(); 
    System.out.println("Job ID is: " + jobRef.getJobId()); 

    Boolean Run_Status = true; 
    while (Run_Status) { 
     Job pollJob = bigquery.jobs().get(projectId, jobRef.getJobId()).execute(); 
     System.out.println("Job status: " + pollJob.getStatus().getState()); 
     if (pollJob.getStatus().getState().equals("DONE")) { 
      System.out.println(pollJob.getStatus().getErrors()); 
      Run_Status = false; 
     } 
     Thread.sleep(1000); 
    }