HBase在Java中复制一行(重命名行键)

HBase在Java中复制一行(重命名行键),hbase,Hbase,我知道在HBase中,行的键不能更改 但我确实需要一个行键重命名函数。 如何使用JAVA将HBase中的一行复制到另一行 e、 g.我有一个键为“key1”的现有行,我想创建一个键为“key2”的行,它是从“key1”行复制的 万分感谢 不确定你是否已经弄明白了。但这是非常简单的事情。只需使用新行键创建一个新Put,并从旧键复制内容 // lets say your already got the result from table.get(Bytes.toBytes("key1

我知道在HBase中,行的键不能更改

但我确实需要一个行键重命名函数。 如何使用JAVA将HBase中的一行复制到另一行

e、 g.我有一个键为“key1”的现有行,我想创建一个键为“key2”的行,它是从“key1”行复制的


万分感谢

不确定你是否已经弄明白了。但这是非常简单的事情。只需使用新行键创建一个新Put,并从旧键复制内容

        // lets say your already got the result from table.get(Bytes.toBytes("key1"))
        Put put = new Put(Bytes.toBytes("key2"));

        NavigableMap<byte[], NavigableMap<byte[], byte[]>> familyQualifierMap = result.getNoVersionMap();
        for (byte[] familyBytes : familyQualifierMap.keySet()) {
            NavigableMap<byte[], byte[]> qualifierMap = familyQualifierMap.get(familyBytes);

            for (byte[] qualifier : qualifierMap.keySet()) {
                put.add(familyBytes, qualifier, qualifierMap.get(qualifier));
            }            
        }            
        table.put(put);
        table.flushCommits();
        table.close();
//假设您已经从table.get(Bytes.toBytes(“key1”)中获得了结果
Put Put=新的Put(字节数。toBytes(“key2”);
NavigableMap familyQualifierMap=result.getNoVersionMap();
对于(字节[]familyBytes:familyQualifierMap.keySet()){
NavigableMap qualifierMap=familyQualifierMap.get(familyBytes);
for(字节[]限定符:限定符map.keySet()){
add(familyBytes,qualifier,qualifierMap.get(qualifier));
}            
}            
表.put(put);
table.flushCommits();
table.close();