Hadoop和Cassandra比较2行
我在Cassandra ColumnFamily上有两行,我想比较具有相同Columnname的列的值,例如: CF:用户 关键字:列:Hadoop和Cassandra比较2行,hadoop,cassandra,bigdata,datastax-enterprise,brisk,Hadoop,Cassandra,Bigdata,Datastax Enterprise,Brisk,我在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:{Col
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编写代码,但我发现一个问题,我无法为映射过程定义两个键 Haddop是一个选择,因为它必须是一个可伸缩的解决方案 我希望每个人都有一个tipp BG,
丹尼我不明白用哪一行来表示减法的基础?K1[V1]-K2[V1]或反之亦然 好的,假设具有最近时间戳的行是一个基 映射步骤应发出以下信号(K=>V): Reduce步骤将接收pair数组,因为每个值都按时间戳排序:
"Andy" => [ {"key":K1, "value":100, timestamp1},
{"key":K2, "value":120, timestamp3} ]
"Tom" => [ {"key":K1, "value":100, timestamp2},
{"key":K2, "value":90, timestamp4} ]
现在在reduce步骤中,您可以轻松地执行一个减法,并将必要的列(如“diff”)写入数据库
"Andy" => [ {"key":K1, "value":100, timestamp1},
{"key":K2, "value":120, timestamp3} ]
"Tom" => [ {"key":K1, "value":100, timestamp2},
{"key":K2, "value":90, timestamp4} ]