我试图在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库。
有人知道解决这个问题的线索吗?
答案 0 :(得分:1)
您的值正在单元格中累积,因为您要求他们:您正在使用append
方法。
请尝试覆盖put
。