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

时间:2018-04-25 07:21:26

标签: apache-spark hbase mapr

商业案例:

我需要为特定的行键保留对象的数组/列表。 对于row-kwy r1的示例,将列c1的模式设置为List<Struct<String,Int>>,将值设置为((“first”,1),(“second”,2)),将另一列c2设置为模式Array<String>和价值(“a”,“b”,“c”)

现在我需要将此信息保存到HBase / MapR二进制表中。 我用Put as

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

我列出了array<struct<String,Int>>

类型的'list1'
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获取列表/集合数据,即{{ 1}}或简单List<Struct<String,int>>,最后它以字符串形式出现,需要与

一起玩

使用scan或get它以字符串格式返回所有内容,而我们没有使用模式获取元素值。

有人可以帮我解决它。

0 个答案:

没有答案