使用thrift在HBase中编写php数组

我有一个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

我没有测试过这个.

上一篇:c# – 托管Thrift服务有哪些选择?


下一篇:php Laravel Thrift使用TMultiplexedProcessor复用端口模式