我正在努力从Google BigQuery访问数据,数据是500MB,我需要将其转换为需求的一部分。我正在设置Allow Large Results
,设置destination table
等
我已经在Google的新云库中编写了一个java作业,因为现在推荐这个作业 - com.google.cloud:google-cloud-bigquery:0.21.1-beta
(我已经尝试了0.20测试版,但没有取得任何丰硕成果)
我对此数据的分页存在问题,该库在提取结果页面方面不一致。这是我的代码段,
System.out.println("Accessing Handle of Response");
QueryResponse response = bigquery.getQueryResults(jobId, QueryResultsOption.pageSize(10000));
System.out.println("Got Handle of Response");
System.out.println("Accessing results");
QueryResult result = response.getResult();
System.out.println("Got handle of Result. Total Rows: "+result.getTotalRows());
System.out.println("Reading the results");
int pageIndex = 0;
int rowId = 0;
while (result != null) {
System.out.println("Reading Page: "+ pageIndex);
if(result.hasNextPage())
{
System.out.println("There is Next Page");
}
else
{
System.out.println("No Next Page");
}
for (List<FieldValue> row : result.iterateAll()) {
System.out.println("Row: " + rowId);
rowId++;
}
System.out.println("Getting Next Page: ");
pageIndex++;
result = result.getNextPage();
}
Accessing Handle of Response
Got Handle of Response
Accessing results
Got handle of Result. Total Rows: 9617008
Reading the results
Reading Page: 0
There is Next Page
Row: 0
Row: 1
Row: 2
Row: 3
:
:
Row: 9999
Row: 10000
Row: 10001
:
:
Row: 19999
:
:
请注意,它永远不会打印/打印 - “获取下一页:”。
我的期望是我会一次获得10000行的数据。请注意,如果我在返回10-15K行的查询上运行相同的代码并将pageSize设置为100条记录,那么每100行后我会得到“获取下一页:”。这是这个beta库的已知问题吗?