hbase shell命令:如何使用限定符过滤器

yi0zb3m4  于 2021-06-04  发布在  Hadoop
关注(0)|答案(3)|浏览(425)

在hbase shell中运行以下命令,尝试使限定符筛选器正常工作:

  1. import org.apache.hadoop.hbase.filter.CompareFilter
  2. import org.apache.hadoop.hbase.filter.SingleColumnValueFilter
  3. import org.apache.hadoop.hbase.filter.SubstringComparator
  4. import org.apache.hadoop.hbase.util.Bytes
  5. import org.apache.hadoop.hbase.filter.QualifierFilter
  6. import org.apache.hadoop.hbase.filter.BinaryComparator

出现以下错误:

  1. hbase(main):011:0> scan 'test', { FILTER => QualifierFilter.new(CompareFilter.CompareOp.GREATER, 'dummy')}
  2. NoMethodError: undefined method `CompareOp' for Java::OrgApacheHadoopHbaseFilter::CompareFilter:Class

有人能分享一个例子hbase限定符过滤器如何在bhase shell中工作吗。

pu82cl6c

pu82cl6c1#

尝试

  1. scan 'test', { FILTER => "QualifierFilter(>, 'regexstring:dummy*')" }

有关更多示例,请查看testparsefilter.java。

cuxqih21

cuxqih212#

如果要搜索准确的列名,可以在hbase shell中发出以下两个命令:

  1. import org.apache.hadoop.hbase.filter.QualifierFilter
  2. scan 'orgtable2', {FILTER => "QualifierFilter(=,'binary:lan')"}

wich将只显示 lanorgtable2 包含此列的唯一记录的表。
更可能的情况是,您可能希望显示所选行的所有列 lan 柱(属于柱族) cf1 )存在。在这种情况下使用 DependantColumnFilter :

  1. import org.apache.hadoop.hbase.filter.DependentColumnFilter
  2. scan 'orgtable2', {FILTER => "DependentColumnFilter('cf1','lan')"}

如果还要对与 lan 列,然后使用5参数签名:

  1. import org.apache.hadoop.hbase.filter.DependentColumnFilter
  2. scan 'orgtable2', {FILTER => "DependentColumnFilter('cf1','lan',false,=,'binary:fre')"}

因此,上一次扫描将返回“lan”列所在行的所有列,并且其关联值等于 fre . 第三个论点是 dropDependentColumn 会阻止 lan 如果设置为true,则显示在结果中的列。更多细节在这里。

展开查看全部
2jcobegt

2jcobegt3#

hbase控制台 JRuby-based ,必须使用 :: 而不是 . 供静力学参考。
试试这个命令:

  1. hbase(main):011:0> scan 'test', { FILTER => QualifierFilter.new(CompareFilter::CompareOp::GREATER, 'dummy')}

相关问题