首页 > 解决方案 > 如何在 bigquery 中从 TableResult 中获取键值对

问题描述

我有一个 TableResult,我想迭代它并将键和它的值放在一个 Hashmap 中。我能够做到这一点,但我不确定这是否是正确的实现方式。

我尝试过以下操作:

HashMap<String, String> rowData = new HashMap<>();
ArrayList<String> keys = new ArrayList<>();
for (Field s : result.getSchema().getFields()) {
    keys.add(s.getName());
}
for (FieldValueList row : result.iterateAll()) {
    for (String column : keys) {
        if (row.get(column).getValue() == null)
            rowData.put(column, (String) row.get(column).getValue());
        else
            rowData.put(column, row.get(column).getValue().toString());
    }
}

在这里,我首先迭代 TableResult 两次以获取键,第二次是获取键的值。请提出正确的方法。

标签: google-bigqueryapache-beam

解决方案


推荐阅读