如何使用put和get将list[string]list[(string,int)]存储和检索到mapr/hbase表中

j13ufse2  于 2021-06-08  发布在  Hbase
关注(0)|答案(0)|浏览(286)

商业案例:
我需要为特定的行键保存对象的数组/列表。以kwyr1行为例,列c1的模式为 List<Struct<String,Int>> 值为((“first”,1)、(“second”,2))和另一列c2以及schema Array<String> 和价值(“a”、“b”、“c”)
现在我需要将这些信息保存到hbase/mapr二进制表中。我以前把它当作

Put put = new Put("r1".getBytes)

我有一个“list1”类型的 array<struct<String,Int>> ```
byte[] colValue1 =list1.toString.getBytes

put.addColumn("columnFamily".getBytes, "c1".getBytes, colValue1);

另一个 `List<String>` 说 `list2=("a","b","c")` ```
byte[] colValue2 = list2.toString().getBytes
put.addColumn("columnFamily".getBytes, "c1".getBytes, colValue1);

使用htable.batch api,我们将数据持久化到hbase/mapr中。
在mapr中,每个属性都以二进制形式存储,没有任何模式信息,尽管我也有模式,并尝试使用模式读取,但仍然无法从mapr中获取列表/集合数据,即。 List<Struct<String,int>> 还是简单 List<String> ,最后它来作为字符串和需要做的发挥
在scan或get中,它以字符串格式返回所有内容,而在schema中我们没有得到元素值。
有人能帮我解决这个问题吗。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题