Google bigquery 400尝试从云存储加载bigquery表时出现错误请求
我收到一个400错误请求错误: 线程“main”com.google.api.client.googleapis.json.GoogleJsonResponseException中出现异常:400错误请求Google bigquery 400尝试从云存储加载bigquery表时出现错误请求,google-bigquery,Google Bigquery,我收到一个400错误请求错误: 线程“main”com.google.api.client.googleapis.json.GoogleJsonResponseException中出现异常:400错误请求 { "code" : 400, "errors" : [ { "domain" : "global", "message" : "Bad Request", "reason" : "badRequest" } ], "message" : "Bad Re
{
"code" : 400,
"errors" : [ {
"domain" : "global",
"message" : "Bad Request",
"reason" : "badRequest"
} ],
"message" : "Bad Request"
}
我不确定如何查看完整请求,但使用作业的toPrettyString()方法,我得到:
{configuration=
{load=
{
createDisposition=CREATE_IF_NEEDED,
destinationTable={
datasetId=vcf1,
projectId=x8-alien-rainfall-3,
tableId=NewTable
},
encoding=UTF-8,
maxBadRecords=10,
schema={
fields=[
{name=sample_id, type=String},
{name=chromosome, type=String},
{name=start_pos, type=Integer},
{name=end_pos, type=Integer},
{name=reference, type=String},
{name=observed, type=String},
{name=quality, type=Float},
{name=filter, type=String},
{name=zygosity, type=String},
{name=refGene_function, type=String}
]
},
skipLeadingRows=1,
sourceUris=[gs://vcfs/test_exome_part1.csv]
}
},
jobReference={projectId=x8-alien-rainfall-3}
}
我使用以下说明设置请求:。实际代码如下所示:
public static void loadCsvAsNewTable(Bigquery bigquery,
Integer skipLeadingRows,
Integer maxBadRecords)
throws IOException {
String encoding = "UTF-8";
String csvFile = "gs://vcfs/test_exome_part1.csv";
String datasetId = "vcf1";
String tableId = "NewTable";
Job insertJob = new Job();
insertJob.setJobReference(new JobReference().setProjectId(PROJECT_ID));
JobConfiguration config = new JobConfiguration();
JobConfigurationLoad loadConfig = new JobConfigurationLoad();
config.setLoad(loadConfig);
List<String> sources = new ArrayList<String>();
sources.add(csvFile);
loadConfig.setSourceUris(sources);
TableReference destinationTable = new TableReference();
destinationTable.setDatasetId(datasetId);
destinationTable.setTableId(tableId);
destinationTable.setProjectId(PROJECT_ID);
loadConfig.setDestinationTable(destinationTable);
loadConfig.setSchema(tableSchema());
loadConfig.setCreateDisposition("CREATE_IF_NEEDED");
if (skipLeadingRows != null) {
loadConfig.setSkipLeadingRows(skipLeadingRows);
}
if (maxBadRecords != null) {
loadConfig.setMaxBadRecords(maxBadRecords);
}
loadConfig.setEncoding(encoding);
config.setLoad(loadConfig);
insertJob.setConfiguration(config);
System.out.println(insertJob.toPrettyString());
Insert insert = bigquery.jobs().insert(PROJECT_ID, insertJob);
insert.setProjectId(PROJECT_ID);
println("Starting load job.");
Job job = insert.execute();
if (isJobRunning(job)) {
Job doneJob = waitForJob(bigquery, PROJECT_ID, job.getJobReference());
println("Done: " + doneJob.toString());
} else {
println("Error: " + job.toString());
}
}
publicstaticvoidloadcsvasnetable(Bigquery-Bigquery,
整数行,
整数(maxBadRecords)
抛出IOException{
字符串编码=“UTF-8”;
字符串csvFile=“gs://vcfs/test\u exome\u part1.csv”;
字符串datasetId=“vcf1”;
字符串tableId=“NewTable”;
Job insertJob=新作业();
insertJob.setJobReference(newjobReference().setProjectId(PROJECT_ID));
JobConfiguration配置=新的JobConfiguration();
JobConfigurationLoadConfig=新的JobConfigurationLoad();
config.setLoad(loadConfig);
列表源=新的ArrayList();
sources.add(csvFile);
loadConfig.setSourceUris(源代码);
TableReference destinationTable=新建TableReference();
destinationTable.setDatasetId(datasetId);
destinationTable.setTableId(tableId);
destinationTable.setProjectId(项目ID);
loadConfig.setDestinationTable(destinationTable);
loadConfig.setSchema(tableSchema());
loadConfig.setCreateDisposition(“如果需要,则创建”);
if(skipingrows!=null){
loadConfig.SetSkiPerceingRows(SkiPerceingRows);
}
if(maxBadRecords!=null){
loadConfig.setMaxBadRecords(maxBadRecords);
}
loadConfig.setEncoding(编码);
config.setLoad(loadConfig);
insertJob.setConfiguration(配置);
System.out.println(insertJob.toPrettyString());
Insert=bigquery.jobs().Insert(项目ID,insertJob);
插入.setProjectId(项目ID);
println(“开始加载作业”);
Job=insert.execute();
如果(isJobRunning(作业)){
Job doneJob=waitForJob(bigquery,PROJECT_ID,Job.getJobReference());
println(“完成:+doneJob.toString());
}否则{
println(“错误:+job.toString());
}
}
我能够使用相同的GoogleCredential(使用服务帐户方法)查询表
任何帮助都将不胜感激。请求的架构部分中指定的字段类型必须是小写:字符串而不是字符串异常代码400表示超过BillingTierLimited 当您尝试执行超出项目最大计费层的高计算查询时,将返回此错误 故障排除:减少每个输入字节完成的计算数量,或启用高计算查询以允许每个字节进行更多计算
你可以在这里查阅回答了我自己的问题。请求的模式部分中指定的字段类型必须是小写:string而不是string。