使用BigQuery API时遇到了一个奇怪的问题。
我们使用Java API来选择特定表中的所有数据。我们使用以下代码执行此操作:
QueryRequest request = new QueryRequest();
request.setQuery(statement);
Query query = service.jobs().query(projectId, request);
QueryResponse queryResp = query.execute();
// Poll until job complete....
// Job completed
GetQueryResultsResponse queryResult = service.jobs().getQueryResults(
projectId, completedJobId).execute();
List<TableRow> rows = queryResult.getRows();
当我们在自己的表上运行时,第一行包含标题,例如:
{ “F”:[{ “V”: “姓名”},{ “V”: “性别”}]}
但是,当我们在具有不同表的其他帐户上运行此功能时,它不包含标头。第一行是数据的第一行。这导致我们的应用程序出现问题,因为我们期望第一行中的表头。任何人都可以帮忙解释为什么会这样吗?
感谢您的帮助!
克里斯
答案 0 :(得分:2)
第一行查询结果不是标题 - 它是结果的第一行。
听起来就像导入数据时一样,您可能有一个导入为第一行数据的标题(您可以在加载中使用skipLeadingRows值来跳过标题行)。
如果您想从数据中获取架构,可以从queryResult.getSchema()函数获取它。