我在cassandra columnfamily上有两行,希望比较具有相同columnname的列的值,例如:
cf:用户
关键字:列:
......................................................
k1:{col1:“安迪”v1:“100”}{col2:“汤姆”v2:“100”}
k2:{col1:“安迪”v1:“120”}{col2:“汤姆”v2:“90”}
现在我想比较k2列和k1列的差异,得到cassandra的结果:
关键字:列:
.........................................................................
k1:{col1:“安迪”v1:“100”}{col2:“汤姆”v2:“100”}
k2:{col1:“安迪”v1:“120”差异:20}{col2:“汤姆”v2:“90”差异:-10}
一开始我想用hadoop编写代码,但我发现一个问题,我不能为map进程定义两个键?
选择haddop是因为它必须是一个可扩展的解决方案。
我希望任何人都有一个窍门?
背景,丹尼
1条答案
按热度按时间qlckcl4x1#
我不明白用哪一行来表示减法的基?k1[v1]-k2[v1]或相反?
好的,假设带有最近时间戳的行是一个基。
Map步骤应发出以下信息(k=>v):
reduce步骤将接收成对的数组,每个值按时间戳排序:
现在在reduce步骤中,您可以轻松地执行减法,并将必要的列(如“diff”)写入数据库