Кассандра, прочитайте значение карты типа столбца <>, используя ByteBufferUtil (org.apache.cassandra.utils)

1

У меня развивается 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()); }

}

Есть ли у кого-нибудь идеи или кто-нибудь может указать мне в правильном направлении?

Спасибо, Джерри

Теги:
cassandra
hadoop
bytebuffer
mapreduce

1 ответ

1
Лучший ответ

Тогда я оставлю это в качестве ответа. Используйте MapType.getInstance(K-type,V-Type).compose(column.getValues()) Где K-Type и V-Type являются экземплярами классов для ключа и значения (например, Int32Type.instance, UTF8Type.instance т.д.),

  • 0
    Я могу ручаться за это, это правильный ответ!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню