2016-10-07 7 views
0

私はHBaseで非常に簡単な例を試しています。テーブルとデータを作成する方法は次のとおりです。HBaseでの単純な整数比較

create 'newdb3','data' 
put 'newdb3','row1','data:name','Thexxx Beatles' 
put 'newdb3','row2','data:name','The Beatles' 
put 'newdb3','row3','data:name','Beatles' 
put 'newdb3','row4','data:name','Thexxx' 
put 'newdb3','row1','data:duration',400 
put 'newdb3','row2','data:duration',300 
put 'newdb3','row3','data:duration',200 
put 'newdb3','row4','data:duration',100 

scan 'newdb3', {COLUMNS => 'data:name', FILTER => "SingleColumnValueFilter('data','duration', > ,'binaryprefix:200')"} 

結果は常に4つの列すべてです。私は文字列の有無にかかわらず、16進数値を使って数値を試しました。私はまた、 'binaryprefix'の代わりに 'binary'を試みました。 hbaseに整数を格納して比較するにはどうすればよいですか?

答えて

0

これは期待される出力を生成しますか?

import org.apache.hadoop.hbase.filter.CompareFilter 
import org.apache.hadoop.hbase.filter.SingleColumnValueFilter 
import org.apache.hadoop.hbase.filter.SubstringComparator 
import org.apache.hadoop.hbase.util.Bytes 

scan 'newdb3', { FILTER => SingleColumnValueFilter.new(Bytes.toBytes('data'), \ 
    Bytes.toBytes('duration'), 
    CompareFilter::CompareOp.valueOf('GREATER'), \ 
    BinaryComparator.new(Bytes.toBytes('200'))) } 

注:これは、バイナリ比較を行いますと数字のために、それは彼らが0で埋められ

+0

である場合にのみ、私は同じ使用してパディングを達成しようとしています動作します。私の列の値はLong(System.currentTimeMillis())です。だから私の質問は、どのように多くのパディングを行うのか分かりますか?どんな答えも歓迎され、事前に感謝します。 – hopeIsTheonlyWeapon

関連する問題