我正在构建一个查询hbastate的三叉戟拓扑。我正在使用org.apache.storm.hbase包。
我的理解是(如果我错了,请纠正我)hbasequery读取给定rowkey的所有列值(或projectioncriteria中指定的列值),并使用字段(“columnname”、“columnvalue”)分别输出每一列。
例如,如果我有一个pets表,rowkey是pet名称,一列表示“type”,一列表示“age”,statequery将接收带有一个值(“fido”)的输入元组,并输出两个单独的元组,其中:
值(“fido”、“type”、“dog”)
价值观(“fido”,“年龄”,11)
一些问题:
有没有一种方法可以在一个查询中从多个列中获取值?意思是,我能得到一个带有字段(“name”,“column1value”,“column2value”)的输出吗?
如果有一种方法可以将多列中的值放入一个元组,那么如果它们是不同类型的(例如,一个是字符串,一个是整数),是否仍然可以这样做?
最终,我的目标是能够获取包含字段(“name”)的输入元组,并获取包含字段(“name”、“type”、“age”)的单个输出元组,例如值(“fido”、“dog”,11)和值(“mr.kibbles”、“cat”,4)。如果不能使用上述方法,怎么可能?
谢谢你的帮助!
1条答案
按热度按时间svgewumm1#
我自己解决了这个问题,在这里为后人发帖:
我遇到困难的原因是我在构建wordcountvaluemapper时没有真正理解它是如何被使用的。更深入地研究一下结果课程会有所帮助。
下面是我现在如何实现它:
在wordcountvaluemapper中,它们遍历结果中的每个单元格,这相当于遍历每个列。取而代之的是,我取下整个单元格数组,然后取出值。没什么聪明的,我只是以前不懂。