У меня развивается Hadoop, работающий на вершине Кассандры. Все работает очень хорошо, но теперь я столкнулся с проблемой, с которой я не могу найти решение.
Один из моих столбцов содержит коллекцию, определение похоже на:
create table productUsage(.... products map, productcategories map)...
и т.д.
В моей карте/уменьшении функции карты мне нужно прочитать значения из этих столбцов, но не могу решить, как преобразовать данные столбца - который является байтовым буфером - в полезную переменную HashMap - функция ByteBufferUtil не похоже, помогают.
Карта/сокращение кода карты, который у меня есть, который извлекает значения столбцов в данный момент, выглядит следующим образом...
string productid; Продукты HashMap;
for (столбец ввода: columnss.entrySet()) {
if ("productid".equalsIgnoreCase(column.getKey())){ productid = ByteBufferUtil.string(column.getValue()); } if ("products".equalsIgnoreCase(column.getKey())){ products =????//ByteBufferUtil.string(column.getValue()); }
}
Есть ли у кого-нибудь идеи или кто-нибудь может указать мне в правильном направлении?
Спасибо, Джерри
Тогда я оставлю это в качестве ответа. Используйте MapType.getInstance(K-type,V-Type).compose(column.getValues())
Где K-Type
и V-Type
являются экземплярами классов для ключа и значения (например, Int32Type.instance
, UTF8Type.instance
т.д.),