我在下面的代码中做错了什么,或者这是一个错误?
com.google.api.services.bigquery.Bigquery.Tables.List list =
bigquery.tables().list(PROJECT_ID, datasetid);
list.setMaxResults((long) 5000);
return list.execute().getTables();
此数据集中有超过1000个表。
答案 0 :(得分:2)
一个请求中将返回的最大表数为1000.但是,您还应在响应中收到pageToken
,可用于分析其他结果。
如:
List<Table> tables = new ArrayList<>();
com.google.api.services.bigquery.Bigquery.Tables.List list =
bigquery.tables().list(PROJECT_ID, datasetid);
list.setMaxResults(5000L);
String nextPageToken = null;
while (true) {
if (nextPageToken != null) {
list.setPageToken(nextPageToken);
}
TableList result = list.execute();
tables.addAll(result.getTables());
if (result.getNextPageToken() == null) {
break;
} else {
nextPageToken = result.getNextPageToken();
}
}
return tables;