2015-04-05 2 views
2

Я тестировал table.put, используя java и python.does happybase table.put accept none string value?

В java вы можете записать значения int или float в столбец. не используя happybase

table.put(line_item_key, {'allinone:quantity': quantity}) 

Это бомбы с TypeError: объект типа «Int» имеет не LEN()

Может быть, это правда, что happybase не поддерживает выписывать ничего, кроме строки?

ответ

4

В Hbase все элементы массива. Никаких причудливых типов данных, таких как int, string, float, double и т. Д. Поэтому всякий раз, когда вы хотите вставить таблицу hbase, сначала вам нужно преобразовать в массив байтов. Затем вы можете вставить.

+0

Это довольно четко указано в документах Happybase: http://happybase.readthedocs.org/en/latest/user.html#manipulating-data –

0

Вы также можете вставить байтовые массивы в hbase, используя happybase с помощью модуля struct python.

import struct 

quantity = struct.pack(">i", 1) 
table.put(rowkey, {'allinone:quantity': quantity}) 

Вставить двоичное представление в HBase.