我为HBaseConfiguration创建了both the environments

Get g =  new Get(Bytes.toByte("rowKey"));
Result r = envATable.get(g);

Put p = new Put(Bytes.toByte("sameRowKey"));
p.add("Need a way to add that result");
envBTable.put(p);


我发现的解决方案:

迭代结果,将每个KeyValue添加到p

还有其他方法吗?

最佳答案

由于您正在使用get,因此结果应包含一行。对于看跌期权,您只需要一个行键,然后是col家族,限定词和值的列表。

String rowId = new String(result.getRow());
Put put = new Put(Bytes.toBytes(rowId));
for(Cell cell : result.rawCells()) {
    put.add(CellUtil.cloneFamily(cell),
    CellUtil.cloneQualifier(cell), CellUtil.cloneQualifier(cell));
}
envBTable.put(put);


CellUtil是提取单元格详细信息的方法。我希望您知道每个单元格都有关于行键,家庭,限定词,时间戳和值的详细信息。您也可以从每个单元格中获取行键,但是在整个行中获取它都是合乎逻辑的。我希望这有帮助。

只要您设置了envBTable,只要您拥有用户许可,我想任何服务器都是相同的。

如果您使用的是Shell,则方法可能会有所不同。但是最终您可能还需要一个脚本,因为您必须自定义,而且我认为没有标准的方法

关于java - HBase-在差异环境中将一行从一张表复制到另一张表-Java,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31831474/

10-13 00:34