如何根据Hbase shell中的where子句等条件获取列值
我是Hbase的新手 我有一个场景,需要根据状态和当前日期提取文件名 因此,我创建了3个专栏<代码>文件名、如何根据Hbase shell中的where子句等条件获取列值,hbase,Hbase,我是Hbase的新手 我有一个场景,需要根据状态和当前日期提取文件名 因此,我创建了3个专栏文件名、状态和日期在Hbase表中 如何根据status=true和日期为今天的条件获取文件名 此查询需要在Hbase外壳上执行。以简洁的方式实现这一点很困难。但这就是我所做的。 hbase shell是一个JRubyshell,它使我们能够执行以下示例 import org.apache.hadoop.hbase.filter.SingleColumnValueFilter import org.apa
状态
和日期
在Hbase
表中
如何根据status=true
和日期为今天的条件获取文件名
此查询需要在Hbase外壳上执行。以简洁的方式实现这一点很困难。但这就是我所做的。
hbase shell
是一个JRuby
shell,它使我们能够执行以下示例
import org.apache.hadoop.hbase.filter.SingleColumnValueFilter
import org.apache.hadoop.hbase.filter.CompareFilter
import org.apache.hadoop.hbase.filter.SubstringComparator
import org.apache.hadoop.hbase.filter.FilterList
filter1 = SingleColumnValueFilter.new(Bytes.toBytes('cf'), Bytes.toBytes('qualifier'), CompareFilter::CompareOp.valueOf('EQUAL'), SubstringComparator.new('valueToSearch'));
filter2 = SingleColumnValueFilter.new(Bytes.toBytes('cf'), Bytes.toBytes('qualifier2'), CompareFilter::CompareOp.valueOf('EQUAL'), SubstringComparator.new('valueToSearch2'));
filterList = FilterList.new([filter1, filter2]);
scan 'table', {FILTER => filterList}
您可以导入任何其他过滤器
,比较器
,Java
对象等
我使用了子字符串比较器进行测试。
在您的情况下,它应该是binarycomarator
(在性能方面也可能更好)
若你们想了解更多关于类似黑客的信息,请参考问题
希望有帮助。看一下以下问题的答案。谢谢,我已经浏览了链接。但是我还没有找到解决方案。换个说法,假设我的桌子上有3个会议。我需要得到对应于条件的第一列,该条件应用于第二列和第三列。这方面的sql等价物是从表中选择第一列,其中(第二列=x,第三列=y)。我需要在hbase外壳中实现这一点。我的错,误读了这个问题。我来试试这个问题。