Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
HBASE-如何应用';比如';在HBASE中使用SingleColumnValueFilter进行筛选操作?_Hbase - Fatal编程技术网

HBASE-如何应用';比如';在HBASE中使用SingleColumnValueFilter进行筛选操作?

HBASE-如何应用';比如';在HBASE中使用SingleColumnValueFilter进行筛选操作?,hbase,Hbase,我在HBASE表中有一列,其每个单元格包含多个值(更准确地说是复合值),如下所示: 单元格中的样本值: '2018-10-15=33|2018-10-16=56' 它基本上是键-值对的集合,键作为日期,值作为计数。键值对由管道字符分隔 我希望在此HBASE表上运行扫描(最好使用SingleColumnValueFilter),以查找上面给定列的单元格具有任何特定日期(如2018-10-15)的所有行。请注意,该列不是行键 为了更清楚地说明我的要求,SQL中的类似操作如下所示: WHERE CO

我在HBASE表中有一列,其每个单元格包含多个值(更准确地说是复合值),如下所示:

单元格中的样本值:

'2018-10-15=33|2018-10-16=56'
它基本上是键-值对的集合,键作为日期,值作为计数。键值对由管道字符分隔

我希望在此HBASE表上运行扫描(最好使用SingleColumnValueFilter),以查找上面给定列的单元格具有任何特定日期(如2018-10-15)的所有行。请注意,该列不是行键

为了更清楚地说明我的要求,SQL中的类似操作如下所示:

WHERE COLUMN_X LIKE '%2018-10-15%'
如何在HBASE中设置此扫描的筛选器

我找不到像 下面提到的一个:

org.apache.hadoop.hbase.filter.CompareFilter.CompareOp.LIKE


请提供帮助。

您可以将SubstringComparator与ValueFilter一起使用

i、 e

如果您想用Java实现它,可以使用以下方法:

SubstringComparator comp = new SubstringComparator("2018-10-15");   

SingleColumnValueFilter filter = new SingleColumnValueFilter(
    Bytes.toBytes("cf"),
    Bytes.toBytes("column_X"),
    CompareOp.EQUAL,
    comp
    );
scan.setFilter(filter);
在这里,您可以找到有关如何使用比较器和过滤器的更多详细信息:

谢谢Nishu,在我使用Java进行操作时,您能提供与之相当的Java API吗?@Ankur:如果它解决了您的问题,请随意接受答案。非常感谢,我非常感谢!很抱歉延迟回复。
SubstringComparator comp = new SubstringComparator("2018-10-15");   

SingleColumnValueFilter filter = new SingleColumnValueFilter(
    Bytes.toBytes("cf"),
    Bytes.toBytes("column_X"),
    CompareOp.EQUAL,
    comp
    );
scan.setFilter(filter);