gpt4 book ai didi

java - 未上传数据,但使用 java 在 bigquery 加载作业中作业状态为 DONE

转载 作者:行者123 更新时间:2023-11-30 06:34:58 27 4
gpt4 key购买 nike

我正在尝试上传格式正确的 CSV 文件。如果我尝试只上传 3 行数据,那么它可以工作,但对于大文件,有时它会显示套接字超时异常,我们刚刚完成了工作。该数据集位于其他位置。

    Bigquery bigquery = GoogleConnector.getBigQuery();
TableSchema schema = new TableSchema();

List<TableFieldSchema> tableFieldSchema =
getTableFieldSchema("mostRecentObservation");
schema.setFields(tableFieldSchema);

Table table = new Table();
table.setSchema(schema);
TableReference tableRef = new TableReference();
tableRef.setDatasetId("MetroMallsEU");

tableRef.setProjectId(projectId);
tableRef.setTableId("mostRecentObsTest");
table.setTableReference(tableRef);

FileContent content = new FileContent("application/octet-stream",
new File(fileNameToLoad));
Job job = new Job();
JobConfiguration config = new JobConfiguration();
JobConfigurationLoad configLoad = new JobConfigurationLoad();

configLoad.setSchema(schema);
configLoad.setDestinationTable(tableRef);

configLoad.setEncoding("UTF-8");
configLoad.setCreateDisposition("CREATE_IF_NEEDED");
configLoad.setSourceFormat("CSV");

// configLoad.setSkipLeadingRows(1);
config.setLoad(configLoad);
job.setConfiguration(config);

try {
Bigquery.Jobs.Insert insert = bigquery.jobs().insert(projectId,
job, content);
insert.setProjectId(projectId);
JobReference jobRef = insert.execute().getJobReference();
String jobId = jobRef.getJobId();
String status;

while (!bigquery.jobs().
get(projectId, jobId).execute().getStatus().getState().equalsIgnoreCase("DONE")) {

status = bigquery.jobs().
get(projectId, jobId).execute().getStatus().getState();

System.out.println("Status: " + status);
Thread.sleep(1000);

}

}catch (Exception e){
e.printStackTrace();
}

最佳答案

检查 status 的文档工作的属性 -

status.state 只是告诉您作业是否已完成如果已完成(“DONE”) - 您仍然需要检查它是如何完成的 - 有或没有错误 - 您可以为此使用 status.errorResult 属性

关于java - 未上传数据,但使用 java 在 bigquery 加载作业中作业状态为 DONE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45368605/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com