HBase-添加列时重复值

HBase-添加列时重复值,hbase,cloudera-cdh,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()) {

我试图在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);
    }
HTable table=新的HTable(hBaseConfig,TableName);
对于(Map.Entry:Columns.entrySet()){
追加a=新追加(行键);
a、 添加(Bytes.toBytes(“a”)、Bytes.toBytes(entry.getKey())、Bytes.toBytes(entry.getValue());
表.附加(a);
}
但当我想要检索值时,它们是冗余存储的。我的意思是,对于每个值,它们在一个单元格中多次粘合在一起,如下:-79.5008048-79.5008048-79.5008048-79.5008048

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


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

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


请尝试将改为覆盖。

谢谢您的回答。似乎当列存在时,Append会累积内容。我在“附加”这个问题的每一列之前都做了“获取”。但我怎么能用“put”?我不想覆盖行中的任何内容。我只想给它添加一串列。像append一样,put可以对一行中的单个单元格进行操作。将一个单元格放入一行不会对该行中的其他单元格产生任何影响。