如何在HBase java中读取Null值

时间:2014-02-18 15:06:18

标签: java hadoop nullpointerexception hbase

我试图从HBase表中检索Long值。但它在重新审视特殊列族时会给出NullPointerException。

示例代码段:

long total_size=0;
total_size +=Bytes.toLong(rr.getValue(Bytes.toBytes("size"),Bytes.toBytes("size"))));

我已经存储了大小的值。一些大小的值是null。我想要检索空值并将它们分配给“0”ZERO。

请给我相应的代码段。

感谢。

1 个答案:

答案 0 :(得分:0)

这是因为Bytes.toLong()方法不会检查检索到的byte[]是否为null并调用其byte[].length,这会抛出您的异常。您可以尝试以下解决方法:

String longValue = Bytes.toString(rr.getValue(Bytes.toBytes("size"),Bytes.toBytes("size")));
total_size += (longValue != null ? Bytes.toLong(rr.getValue(Bytes.toBytes("size"),Bytes.toBytes("size")):0l);

try{
  total_size +=Bytes.toLong(rr.getValue(Bytes.toBytes("size"),Bytes.toBytes("size"))));
}catch(NullPointerException e){
  // no need to increment total_size by 0
}