Tutumluluk kullanarak Hbase php dizi Yazın

2 Cevap php

Ben bir Thrift php müşterim var ve ben bir Hbase tabloya yazmak istiyorum ve ben şu yapıyorum:

  $mutations = array(
    new Mutation( array(
      'column' => 'entry:num',
      'value' => array('a','b','c')
    ) ),
  );
  $client->mutateRow( $t, $row, $mutations );

The problem is that when inserting in HBase the value, which is an array, gets converted to 'Array' instead of storing the elements of the array. How can I store the list as an array (or byte array)

2 Cevap

Bir Hbase mutasyon nesne Boole / metin değerleri değil, diziler ile üç alan gerektirmiştir. Yani, bir dizeye herhangi bir yapısal değerini açmak gibi bir şey gerekir.

  $mutations = array(
     new Mutation( array(
       'isDelete' => FALSE,
       'column'   => 'entry:num',
       'value'    => serialize(array('a','b','c'))
     ) ),
   );
   $client->mutateRow( $t, $row, $mutations );

The definition of the HBase Thrift API is here; http://svn.apache.org/viewvc/hbase/trunk/src/main/resources/org/apache/hadoop/hbase/thrift/Hbase.thrift?view=markup

Ben bu test değil.

(Sana (belki nedeniyle Thrift ve Hbase ilgili bilgi eksikliği) yapmak için çalışıyoruz ne bir ipucu yok itiraf etmeliyim, ama ben sorunuzu doğru anlaşıldığı takdirde, bazı PHP veri yapısını yazmaya çalışıyoruz bir depolama ortamına Bu durumda dizi). Bunu sağlamak için için serialize veri nasılsa var. Bu özel bir XML serileştirme, özel bir ikili serileştirme ya, belki de en basit çözümü, serialize() tarafından sağlanan PHP iç serileştirme mekanizması ve karşılık gelen unserialize() kullanıyor olabilir.

Inter-dil-çalışabilirlik için çaba varsa, bir özel seri kullanmalısınız ya da hedef dilde PHP serileştirme biçimi unserializes bir unserialization işlevi yazmak zorunda.

Sadece hızlı bir örnek - Eğer bu kodu koymak olurdu nerede Seni yaptığınızı tam bilmiyorum, bilmiyorum:

$mutations = array(
    new Mutation(array(
      'column' => 'entry:num',
      'value'  => array('a','b','c')
    )),
  );
$data = serialize($mutations); // $data now is a string
// write $data to storage
// read $readData from storage
$readMutations = unserialize($readData);
// $readMutations == $mutations 
// (but the Mutation instances are not the same instances any more)

Seee Lütfen