我正在使用hbase mapreduce(docs)从hbase表中读取字符串。以下是部分代码:
public void map(ImmutableBytesWritable row, Result values, Context context) throws IOException {
String testing = values.getValue(Bytes.toBytes("data"),Bytes.toBytes("lastLine")).toString();
try {
context.write(new ImmutableBytesWritable(Bytes.toBytes(testing)), new IntWritable(1));
} catch (InterruptedException e) {
throw new IOException(e);
}
}
}
有一个reducer可以将字符串输出到另一个hbase表,当我尝试用mapper中的一些硬代码字符串测试它时,它工作得很好。我已经从hbase shell检查了要读取的字符串是否设置正确。
但是,当我尝试将其作为行id输入到hbase中的另一个表中时,它会变成未知字符串,如下所示:
[b@fe2851
列=result:count,时间戳=1415868730030,值=\x00\x00\x00\x01
[b@fe331c
列=result:count,时间戳=1415868730030,值=\x00\x00\x00\x01
[b@fe6526
列=result:count,时间戳=1415868730030,值=\x00\x00\x00\x01
[b@fe7a98
列=result:count,时间戳=1415868730030,值=\x00\x00\x00\x01
预期结果如下:
苹果
列=result:count,时间戳=1415868730030,值=\x00\x00\x00\x01
橙色
列=result:count,时间戳=1415868730030,值=\x00\x00\x00\x01
香蕉
列=result:count,时间戳=1415868730030,值=\x00\x00\x00\x01
菠萝
列=result:count,时间戳=1415868730030,值=\x00\x00\x00\x01
关于可能的原因有什么线索吗?
1条答案
按热度按时间aoyhnmkz1#
您正在写入数组的字符串名称
[B@fe6526
或者类似的。我想你想要这个: