如何在Accumulo中的列限定符字段上执行聚合?

时间:2015-01-12 12:05:34

标签: java hadoop accumulo

假设我在Accumulo中有这样的表:

a cf1:cq1 [ ]    1

b cf1:cq1 [ ]    3

c cf1:cq1 [ ]    2

如果我在此表上应用SummingCombiner并插入一行“a cf1 cq1 2”,那么我会得到结果:

a cf1:cq1 [ ]    3

b cf1:cq1 [ ]    3

c cf1:cq1 [ ]    2

我想知道的是,是否有一个迭代器可以帮助我在列限定符等特定字段上执行聚合。

简而言之,我可以执行“Sum of the values of those rows where column qualifier is cq1”之类的查询。

如果没有针对此类查询的现成迭代器,我该如何为它创建自定义迭代器?

1 个答案:

答案 0 :(得分:1)

我认为我们在Accumulo中没有任何东西可以直接提供您所要求的内容,但https://github.com/joshelser/accumulo-column-summing非常相似,可以作为一个很好的起点。

您也可以尝试使用ColumnSliceFilter,它会将结果限制为您想要的列限定符,并轻松编写SummingIterator(或者只是将它们与客户端相加)。