我正在开发hadoop在cassandra之上运行。一切都很顺利,但我现在遇到了一个我找不到解决办法的问题。
我的一个列包含一个集合,定义类似于: create table productUsage( .... products map, productcategories map )...
等。
在我的map/reduce map函数中,我需要从这些列中读取值,但无法解决如何将列数据(字节缓冲区)转换为可用的hashmap变量bytebufferutil函数似乎没有帮助。
我现在提取列值的map/reduceMap代码如下所示。。。
string productid; HashMap products; for (Entry column : columns.entrySet()){ if ("productid".equalsIgnoreCase(column.getKey())){
productid = ByteBufferUtil.string(column.getValue());
}
if ("products".equalsIgnoreCase(column.getKey())){
products = ???? //ByteBufferUtil.string(column.getValue());
} }
有人有什么想法吗?或者有人能给我指出正确的方向吗?
谢谢,格瑞
1条答案
按热度按时间7vhp5slm1#
那我就把它作为回答。使用
MapType.getInstance(K-type,V-Type).compose(column.getValues())
哪里K-Type
以及V-Type
是键和值的类的示例(例如Int32Type.instance
,UTF8Type.instance
等)