使用 insertAll 时丢失行 - BigQuery
Posted
技术标签:
【中文标题】使用 insertAll 时丢失行 - BigQuery【英文标题】:Getting missing row while using insertAll - BigQuery 【发布时间】:2016-05-03 11:00:14 【问题描述】:在将数据插入 BigQuery 时,我在响应中出现无效原因的缺失行。
"errors":["message":"Missing row.","reason":"invalid"],"index":0, "errors":["message":"Missing行。","原因":"无效"]
下面是我正在执行的代码:
/以下行调用dfp API来获取所有adunits AdUnitPage page = inventoryService.getAdUnitsByStatement(statementBuilder.toStatement()); 列表 dfpadunits = new ArrayList();
if (page.getResults() != null)
totalResultSetSize = page.getTotalResultSetSize();
int i = page.getStartIndex();
for (AdUnit adUnit : page.getResults())
/*System.out.printf(
"%d) Ad unit with ID '%s' and name '%s' was found.%n", i++,
adUnit.getId(), adUnit.getName());*/
//Map<String,Object> dfpadunitrow = new HashMap<String,Object>();
//dfpadunitrow.put(adUnit.getId(), adUnit.getName());
Rows dfpadunit = new TableDataInsertAllRequest.Rows();
dfpadunit.setInsertId(adUnit.getId());
dfpadunit.set("id",adUnit.getId());
dfpadunit.set("name",adUnit.getName());
dfpadunits.add(dfpadunit);
TableDataInsertAllRequest content = new TableDataInsertAllRequest();
content.setRows(dfpadunits);
content.setSkipInvalidRows(true);
content.setIgnoreUnknownValues(true);
System.out.println(dfpadunits.get(0));
Bigquery.Tabledata.InsertAll request = bigqueryService.tabledata().insertAll(projectId, datasetId, tableId, content);
TableDataInsertAllResponse response = request.execute();
System.out.println(response.getInsertErrors());
我使用记录器来检查我的数据是否正确填充,但是当我尝试使用 insertAll 将记录插入到 bigquery 中时,我得到了响应无效的行。
谢谢, 卡皮尔
【问题讨论】:
我的回答对你有用吗? 【参考方案1】:您需要使用TableRow
对象。这有效(我测试过):
TableDataInsertAllRequest.Rows dfpadunit = new TableDataInsertAllRequest.Rows();
TableRow row = new TableRow();
row.set("id",adUnit.getId());
row.set("name",adUnit.getName());
dfpadunit.setInsertId(adUnit.getId());
dfpadunit.setJson(row);
dfpadunits.add(dfpadunit);
【讨论】:
以上是关于使用 insertAll 时丢失行 - BigQuery的主要内容,如果未能解决你的问题,请参考以下文章
使用 insertAll 时 Appscript 中的大查询解析错误
sql [BigQuery - Facebook产品目录]查询para obtenerelcatálogodeproductos de Kichink。 #facebook #bigqu
无法使用 table.insertall() 将任何数据上传到 bigquery
Scala slick 2.0 updateAll 等同于 insertALL?