我正在引用LoadDataCSVSample.java程序,当我定义正确的架构和CSV数据时,我能够将CSV数据加载到BigQuery中。但是当我提供不正确的数据时,我会收到“正在加载!”的消息。但数据未加载,我无法看到错误。如何修改此示例程序以捕获错误?
答案 0 :(得分:1)
我认为这个例子在作业完成后缺少分析错误(" Load Is Done")。 工作处于待定或运行或完成状态 工作完成的事实并不能说明它是成功还是失败
要了解这一点,您应该使用jobId,然后使用Jobs: get获取作业的status.state。在这里你可以看到作业是完成(完成)还是没有(完成或跑步),所以这样做直到它完成,当它完成时 - 你可以查看status.errorResult最后一个错误或status.errors对于在作业运行期间遇到的所有错误
答案 1 :(得分:0)
添加到Mikhail的答案,这是代码,
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);
}