hbase表检索数据

bksxznpy  于 2021-06-10  发布在  Hbase
关注(0)|答案(1)|浏览(402)

如果尝试使用以下代码从hbase表检索数据:

val get = new Get(Bytes.toBytes(extracted.user.rowKey.toString))
val res = table.get(get)

我不确定 val res = table.get(get) 行将返回一个结果或不返回,因为具有此行键的行: extracted.socialUser.socialUserConnectionId.toString 传递给get构造函数的参数在hbase表中可能不存在。
我试着这样做:

val get = new Get(Bytes.toBytes(extracted.socialUser.socialUserConnectionId.toString))
val res = table.get(get)
if (!res) {
    /* Create the row in the HBase table */
}

但它给了我一个错误,如果说: Expression of this type result doesn't convert to type Boolean . 有办法解决这个问题吗?

fhg3lkii

fhg3lkii1#

乍一看,似乎 val res = table.get(get) 将返回一个类型 Optional .
既然如此,你应该打电话来 res.isEmpty 而不是 !res 编辑:
更好的是,你可以 getOrElse 而不是 get :

val res = table.getOrElse{
  // Create the row in the HBase table
}

相关问题