以下hBase代码返回rowKey前面的一些奇怪的字符:
“\ u0000的” “\ u0014” “EI:虾:-749 ...”
前置奇怪的字符是'\ u0000'和'\ u0014',有时是'\ u0016'。我在上面的行中加上引号以使其可读。只有两个,它们被添加到我的rowkey之前。关键应该是'ei:虾:-749 ......'。这是我用来获取密钥的代码:
import static org.apache.hadoop.hbase.util.Bytes.toBytes;
List<KeyValue> kvs = result.list();
String key = null;
for (KeyValue kv : kvs) {
String value = Bytes.toString(kv.getValue());
String qualifier = Bytes.toString(kv.getQualifier());
if(key == null) {
key = Bytes.toString(kv.getKey());
以下是我用来创建put的代码:
public Put createPut(String columnFamily) {
StringBuilder sb = new StringBuilder(this.getGroup()).append(':');
sb.append(this.getKey()).append(':').append(this.getCoordinateHash());
Put p = new Put(toBytes(sb.toString()));
p = p.add(toBytes(columnFamily), toBytes(COLUMN_VALUE), toBytes(this.getValue()));
知道那些奇怪的角色是什么吗?我究竟做错了什么? 谢谢, 拉雅
答案 0 :(得分:0)
我想你想要调用KeyValue.getRow()。
KeyValue.getKey()返回原始键,前两个字节是一个Short,表示该行的持续时间。