0

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

示例:table.scan(filter="SingleColumnValueFilter('info','collection',=,'substring:tweets_brazilFire')")

示例:table.scan(filter="SingleColumnValueFilter('info','collection',=,'substring:tweets_brazilFire')", columns=['field:body_s'])

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

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

我为此使用 python happybase。

请让我知道你的建议。

谢谢

4

1 回答 1

0

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

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

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

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

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

第一种语法似乎适合您。filterIfColumnMissing_boolean为真,因此只有那些存在这样列的行才会返回。版本由您决定。希望这会有所帮助。

谢谢

于 2013-02-08T09:23:20.060 回答