我想将数据从Google云端存储上传到Big Query中的表格。 有我的代码来创建工作:
Job job = new Job();
JobConfiguration config = new JobConfiguration();
JobConfigurationLoad loadConfig = new JobConfigurationLoad();
List<String> sources = new ArrayList<String>();
sources.add("gs://bucket/file.cvs");
loadConfig.setSourceUris(sources);
TableReference tableRef = new TableReference();
tableRef.setDatasetId("DATASET_ID");
tableRef.setTableId(TABLE_ID);
tableRef.setProjectId(PROJECT_ID);
loadConfig.setDestinationTable(tableRef);
List<TableFieldSchema> fields = FieldsBigQuery.schema();
TableSchema schema = new TableSchema();
schema.setFields(fields);
loadConfig.setSchema(schema);
config.setLoad(loadConfig);
job.setConfiguration(config);
Insert insert = _bigquery.jobs().insert(PROJECT_ID, job);
insert.setProjectId(PROJECT_ID);
JobReference jobRef = insert.execute().getJobReference();
我没有任何错误或异常,但它没有将任何数据上传到我的表中(表大小为0B)。我尝试创建没有任何数据的表,而不是将数据上传到此表,但事实并非如此。
我将不胜感激,
非常感谢!
答案 0 :(得分:1)
请记住使用以下方法检查作业状态:
JobStatus status =
_bigquery.jobs().get(PROJECT_ID, jobRef.getJobId()).execute().getStatus();
System.out.println(status.toPrettyString());
如果一切正常,工作状态可能是PENDING或RUNNING,并且您必须等到它完成。或者,您将能够阅读原因和信息,说明为什么它无法运行。