我确定忽略了下面代码段中的内容,但我无法弄清楚是什么。如上所述,如果我包含对“存在”的呼叫。为了快速检查密钥是否存在于表格中,随后的“获取”密码。最终没有回来;评论'存在'但是,调用使代码工作。但是,现在我必须在解析从Hbase获取的结果之前进行额外的检查,以确保它不是空的/ null。
...
final Get g = new Get(someKey);
g.setCacheBlocks(true);
g.setMaxVersions(1);
g.addColumn(colFamily, colName);
/* --- THIS DOES NOT WORK --- */
if (this.someHbaseTab.exists(g)) {
final Result res = this.someHbaseTab.get(g);
// res is empty!!!
}
// --- --- ---
/* --- THIS WORKS --- */
// No call to 'exists'
final Result res = this.someHbaseTab.get(g);
// Valid result
// --- --- ---
...
我正在运行Cloudera CDH5。
答案 0 :(得分:0)
您不必调用存在。只需在res.isEmpty()
电话
get()
即可