HBase在Java中复制一行(重命名行键)
我知道在HBase中,行的键不能更改 但我确实需要一个行键重命名函数。 如何使用JAVA将HBase中的一行复制到另一行 e、 g.我有一个键为“key1”的现有行,我想创建一个键为“key2”的行,它是从“key1”行复制的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
万分感谢 不确定你是否已经弄明白了。但这是非常简单的事情。只需使用新行键创建一个新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();