hadoop - Hadoop和Cassandra比较2行

标签 hadoop cassandra bigdata datastax-enterprise brisk

我在Cassandra ColumnFamily上有两行,想要比较具有相同Columnname的列的值,例如:

CF:用户

关键字:列:
................................................... ....

K1:{Col1:“Andy” V1:“100”} {Col2:“Tom” V2:“100”}

K2:{Col1:“Andy” V1:“120”} {Col2:“Tom” V2:“90”}

现在我想比较K2列与K2列的差异,以在Cassandra中获得此结果:

关键字:列:
................................................... .......................

K1:{Col1:“Andy” V1:“100”} {Col2:“Tom” V2:“100”}

K2:{Col1:“Andy” V1:“120”差异:20} {Col2:“Tom” V2:“90”差异:-10}

起初,我想使用Hadoop对此进行编码,但我看到一个问题,我无法为 map 流程定义两个键?

选择Haddop是因为它必须是可扩展的解决方案。

我希望有人给小费吗?

BG,
丹尼

最佳答案

我不知道减法的基数将代表哪一行?是K1 [V1] -K2 [V1]还是相反?

好的,可以说具有最近时间戳记的行将作为基准。

您的Map步骤应发出以下内容(K => V):

// each value is a WritableComparable object to allow sorting by timestamp

"Andy" => {"key":K1, "value":100, timestamp1} 
"Tom"  => {"key":K1, "value":100, timestamp2} 
"Andy" => {"key":K2, "value":120, timestamp3} 
"Tom"  => {"key":K2, "value":90,  timestamp4} 

减少步骤将接收成对的数组,对于每个值均按时间戳排序:
"Andy" => [ {"key":K1, "value":100, timestamp1},
            {"key":K2, "value":120, timestamp3} ]

"Tom"  => [ {"key":K1, "value":100, timestamp2},
            {"key":K2, "value":90,  timestamp4} ]

现在,在减少步骤中,您可以轻松执行减法并将必要的列(例如“diff”)写入数据库

关于hadoop - Hadoop和Cassandra比较2行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17490078/

相关文章:

hadoop - 在Amazon Cloud上安装Hadoop

java - 在 Cassandra 中实现 FIFO 读取

java - Cassandra + Java Spring 连接问题

hadoop - CDR的大数据分析(通话详细记录)。帮助:D

java - 我在运行 map 缩减排序程序时遇到错误

hadoop - PIG UDF 中的表架构

java - HBase 数据持久化

cassandra - 如何恢复cassandra中删除的数据?

hadoop - 需要清晰了解hiveconf并在hive中设置命令

python - 使用 Pyarrow 将 .parquet 文件转换为 CSV