获取hbase中的所有家庭

Joh*_*nGa 3 hbase

我有一个hbase表

行:单词,家庭:日期

我想在'd'日期为所有单词扫描一个扫描仪,我该怎么做?所以我不想指定行值.

Qui*_*nnG 5

你的问题不明确,你试图从哪里获取扫描仪,所以我会像HBase命令行那样对待它.我已经使用thrift库与hbase进行交互,并且CLI命令很明显地转换为了.我认为它们也可以很好地转换为你正在使用扫描仪的任何其他接口.

要获取特定列族的所有行,请使用以下命令

scan 'table_name', {COLUMNS => 'col_family:'}
Run Code Online (Sandbox Code Playgroud)

对于你的情况(减去'table_name''因为我不知道)它看起来像

scan 'yourTable', {COLUMNS => 'd:'}
Run Code Online (Sandbox Code Playgroud)

这将返回列族中的所有行d.

如果您还想指定从哪RowKeys开始,它将看起来像

scan 'yourTable', {COLUMNS => 'd:', STARTROW => 'word'}
Run Code Online (Sandbox Code Playgroud)

该命令将从行键开始,word并在该点之后获取所有行.如果你想将它限制为只RowKey word,你还需要添加STOPROW.结果STOPROW中不包含该内容.所以你不能这样做scan 'yourTable', {COLUMNS => 'd:', STARTROW => 'word', STOPROW => 'word'},因为什么都不会返回.指定a STOPROW需要了解RowKey值.我不知道你的价值观,所以很难给出一个很好的例子.我经常做的是使用下一个字符(在ASCII集中)作为我的起始行的最后一个字符.在你的例子中,我试试

scan 'yourTable', {COLUMNS => 'd:', STARTROW => 'word', STOPROW => 'wore'}
Run Code Online (Sandbox Code Playgroud)

我不会保证这会一直有效,但在大多数情况下它可能会起作用.也许所有情况,我只是没有解决.:)

希望这会有所帮助.

HBase shell命令的一个很好的资源是http://wiki.apache.org/hadoop/Hbase/Shell.