Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/351.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用JavaAPI将Avro文件中的非可选值仅插入到BigQuery表中_Java_Google Cloud Platform_Google Bigquery_Google Cloud Storage_Avro - Fatal编程技术网

如何使用JavaAPI将Avro文件中的非可选值仅插入到BigQuery表中

如何使用JavaAPI将Avro文件中的非可选值仅插入到BigQuery表中,java,google-cloud-platform,google-bigquery,google-cloud-storage,avro,Java,Google Cloud Platform,Google Bigquery,Google Cloud Storage,Avro,以下是我的Avro模式: { “名称空间”:“example.gcp”, “类型”:“记录”, “名称”:“客户”, “字段”:[{ “名称”:“id”, “类型”:“长” }, { “名称”:“名称”, “类型”:“字符串” }, { “姓名”:“电话”, “类型”:[“字符串”,“空”] }, { “姓名”:“地址”, “类型”:[“字符串”,“空”] } ] } 并且部分修改了GitHub上GCP BigQuery示例的代码,该示例将Avro文件(存储在Google云存储中)中的所有字段

以下是我的Avro模式:

{
“名称空间”:“example.gcp”,
“类型”:“记录”,
“名称”:“客户”,
“字段”:[{
“名称”:“id”,
“类型”:“长”
},
{
“名称”:“名称”,
“类型”:“字符串”
},
{
“姓名”:“电话”,
“类型”:[“字符串”,“空”]
},
{
“姓名”:“地址”,
“类型”:[“字符串”,“空”]
}
]
}
并且部分修改了GitHub上GCP BigQuery示例的代码,该示例将Avro文件(存储在Google云存储中)中的所有字段加载到表(BigQuery)中

publicstaticmodelandview loadAvroFromGCS(字符串datasetName、字符串tableName、字符串sourceUri){
字符串消息;
试一试{
BigQuery BigQuery=BigQueryOptions.getDefaultInstance().getService();
TableId TableId=TableId.of(datasetName,tableName);
LoadJobConfiguration loadConfig=
LoadJobConfiguration.of(tableId、sourceUri、FormatOptions.avro());
Job Job=bigquery.create(JobInfo.of(loadConfig));
job=job.waitFor();
message=“已成功将数据文件加载到”+tableName;
}捕获(BigQueryException | InterruptedException e){
message=“Error:”+e.getMessage();
}
返回新的ModelAndView(“索引”)
.addObject(“datasetName”,datasetName)
.addObject(“消息”,消息);
}

问题是如何将我的代码更改为将
表1
中的非可选字段
(“id”、“name”)
和所有
(“id”、“name”、“phone”、“address”)
保存到一个数据集中的
表2
?您只需要表1中的ID和名称,而不需要其他字段?是否要在同一进程中执行这两项任务?因为您可以尝试的一个选项是加载表1中的所有字段,然后查询(id、名称)并将结果加载到表2中。本文件仅供参考。