0

我在使用 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":"性别"}]}

但是,当我们在具有不同表的不同帐户上运行它时,它不包括标题。第一行是数据的第一行。这导致我们的应用程序出现问题,因为我们期望第一行中的表头。谁能帮助解释为什么会这样?

谢谢你的帮助!

克里斯

4

1 回答 1

2

查询结果的第一行不是标题——它是结果的第一行。

听起来当您导入数据时,您可能有一个作为第一行数据导入的标题(您可以在加载中使用 skipLeadingRows 值来跳过标题行)。

如果要从数据中获取模式,可以从queryResult.getSchema()函数中获取。

于 2013-07-10T17:29:22.643 回答