放入HBase的关键价值

时间:2017-02-19 19:18:34

标签: hbase

我正在尝试将Put对象转换为KeyValue个对象。 我怎样才能在HBase上实现这一目标?我查看了源代码,但没有找到方法。 我的Put对象包含rowkey和2列(A,B列)。

感谢帮助者

1 个答案:

答案 0 :(得分:2)

包含2列的看跌期权不是关键值,而是2个关键值。

在Put class中检查此方法:

KeyValue createPutKeyValue(byte[] family, byte[] qualifier, long ts, byte[] value) {
  return new KeyValue(this.row, family, qualifier, ts, KeyValue.Type.Put, value);
}

KeyValue包含单元格信息 - 具有列,时间戳和数据的键列系列。

所以你的情况

List<KeyValue> keyValues = new ArrayList<>();
for (Map.Entry<byte[], List<Cell> entry : put.getFamilyCellMap()) {
    byte[] cf = entry.getKey();
    List<Cell> cells = entry.getValue();
    for (Cell cell : cells) {
      // get row, column, ts and value using Cell api
      keyValues.add(new KeyValue(...));
    }
}