2017-02-19 5 views
1

PutオブジェクトをKeyValueオブジェクトに変換しようとしています。 HBaseでどうすれば実現できますか?私はソースコードを見てきましたが、それを行う方法が見つかりませんでした。 私のPutオブジェクトには、行キーと2列(A、B列)が含まれています。HBaseのキー値を設定

助けをいただきありがとう

答えて

2

あなたのPutが2つの列は、Key Valueではなく2つのKey Valuesです。

チェック入れクラスでは、この方法は: - キー、列、タイムスタンプとデータを持つ列ファミリー

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(...)); 
    } 
} 
関連する問題