Hbase:仅使用一个过滤器扫描,使用过滤器和列进行扫描

时间:2013-02-07 23:53:54

标签: hbase

当我使用SingleColumnValueFilter进行hbase扫描时,没有添加其他参数,它会返回40000行。

  

实施例:   table.scan(滤波器= “SingleColumnValueFilter( '信息', '收集',=, '子:tweets_brazilFire')”)

     

实施例:   table.scan(滤波器= “SingleColumnValueFilter( '信息', '收集',=, '子:tweets_brazilFire')”,   列= [ '字段:body_s'])

当我将列添加到扫描时,会产生1967178行。

我在这里很困惑。该列存在于其他行中,但它没有我指定的列值。扫描是否应该同时应用返回列的条件和仅通过过滤器的行?

我正在使用python happybase。

请告诉我你的建议。

由于

1 个答案:

答案 0 :(得分:0)

首先从API的角度来看,Apache Thrift将SingleColoumnValueFilter应用于另一种语法

Syntax: SingleColumnValueFilter(<compare operator>, ‘<comparator>’, ‘<family>’, ‘<qualifier>’,<filterIfColumnMissing_boolean>, <latest_version_boolean>)

Syntax: SingleColumnValueFilter(<compare operator>, ‘<comparator>’, ‘<family>’, ‘<qualifier>)

Example: "SingleColumnValueFilter (<=, ‘abc’,‘FamilyA’, ‘Column1’, true, false)"

Example: "SingleColumnValueFilter (<=, ‘abc’,‘FamilyA’, ‘Column1’)"

第一种语法似乎适合你。 filterIfColumnMissing_boolean为true,因此只有那些具有此类coloumn的行才会返回。版本由你决定。 希望这会有所帮助。

感谢