我有一个Thrift php客户端,我想写一个HBase表,我正在做以下事情:
$mutations = array(
new Mutation( array(
'column' => 'entry:num',
'value' => array('a','b','c')
) ),
);
$client->mutateRow( $t, $row, $mutations );
问题是当在HBase中插入时,值(即数组)将转换为“Array”而不是存储数组的元素.
如何将列表存储为数组(或字节数组)
解决方法:
HBase变异对象需要三个具有布尔/文本值的字段,而不是数组.因此,您需要将任何结构化值转换为字符串,例如.
$mutations = array(
new Mutation( array(
'isDelete' => FALSE,
'column' => 'entry:num',
'value' => serialize(array('a','b','c'))
) ),
);
$client->mutateRow( $t, $row, $mutations );
HBase Thrift API的定义在这里;
http://svn.apache.org/viewvc/hbase/trunk/src/main/resources/org/apache/hadoop/hbase/thrift/Hbase.thrift?view=markup
我没有测试过这个.