gpt4 book ai didi

google-bigquery - 尝试从云存储加载 bigquery 表时出现 400 Bad Request 错误

转载 作者:行者123 更新时间:2023-12-02 02:04:50 29 4
gpt4 key购买 nike

我收到 400 错误请求错误:

线程“主”com.google.api.client.googleapis.json.GoogleJsonResponseException 中的异常:400 错误请求

{
"code" : 400,
"errors" : [ {
"domain" : "global",
"message" : "Bad Request",
"reason" : "badRequest"
} ],
"message" : "Bad Request"
}

我不确定如何查看完整请求,但使用 Job 的 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}
}

我使用此处的说明设置我的请求:Load data from Google Cloud Storage to BigQuery using Java .实际代码如下所示:

  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());
}
}

我能够使用相同的 GoogleCredential 查询表,它使用服务帐户方法。

如有任何帮助,我们将不胜感激。

最佳答案

请求的模式部分中指定的字段类型必须是小写:字符串而不是字符串

关于google-bigquery - 尝试从云存储加载 bigquery 表时出现 400 Bad Request 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15598724/

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