添加列时HBase-重复值

时间:2014-07-10 21:07:57

标签: hbase cloudera-cdh

我试图在HBase中存储一些位置(纬度,经度)值。每次我从HashMap获取键值和值对的新值时,我决定添加一列。我的HashMap如下:

{lat:43.7719802,lon:-79.5008048} (Hashmap的示例JSon表示)

这是我的代码:

HTable table = new HTable(hBaseConfig, TableName);    
for (Map.Entry<String, String> entry : Columns.entrySet()) {
                    Append a = new Append(rowKey);
                    a.add(Bytes.toBytes("a"), Bytes.toBytes(entry.getKey()), Bytes.toBytes(entry.getValue()));
                    table.append(a);
    }

但是当我想要检索值时,它们被存储为冗余。我的意思是,对于每个值,它们在一个单元格中粘合多次,如下所示:-79.5008048-79.5008048-79.5008048

我在我的代码中使用了HBase 0.94.15-cdh4.7.0库。

有人知道解决这个问题的线索吗?

1 个答案:

答案 0 :(得分:1)

您的值正在单元格中累积,因为您要求他们:您正在使用append方法。

请尝试覆盖put