我正在尝试使用JAVA从BigQuery列出表数据。但是,我找不到如何配置API以使每次调用获得最大行数?

public class QuickstartSample {
    public static void main(String... args) throws Exception {
        GoogleCredentials credentials;
        File credentialsPath = new File("/Users/gaurang.shah/Downloads/fb3735b731b9.json");  // TODO: update to your key path.
        FileInputStream serviceAccountStream = new FileInputStream(credentialsPath);
        credentials = ServiceAccountCredentials.fromStream(serviceAccountStream);

        BigQuery bigquery = BigQueryOptions.newBuilder().
                setCredentials(credentials).
                setProjectId("bigquery-public-data").
                build().
                getService();

        Dataset hacker_news = bigquery.getDataset("hacker_news");
        Table comments = hacker_news.get("comments");
        TableResult result = comments.list().;
        for (FieldValueList row : result.iterateAll()) {
            // do something with the row
            System.out.println(row);
        }
    }
}

最佳答案

要限制行数,可以将listTableData方法与TableDataListOption.pageSize(n)参数一起使用。

以下示例返回100行作为结果:

String datasetName = "my_dataset_name";
String tableName = "my_table_name";
TableId tableIdObject = TableId.of(datasetName, tableName);

TableResult tableData =
    bigquery.listTableData(tableIdObject, TableDataListOption.pageSize(100));
for (FieldValueList row : tableData.iterateAll()) {
    // do something with the row
}

10-07 22:57