我有一个 hbase 表
Rows: word, Families: date
我想扫描日期“d”的所有单词,我该怎么做?所以我不想指定行值。
最佳答案
您的问题不清楚您尝试从何处获取扫描仪,因此我将其视为来自 HBase 命令行。我已经使用 thrift 库与 hbase 进行交互,CLI 命令非常明显地转换为它。我认为它们也能很好地转换为您要为其扫描仪准备的任何其他界面。
要获取特定列族的所有行,您可以使用以下命令
scan 'table_name', {COLUMNS => 'col_family:'}
对于你的情况(减去'table_name''因为我不知道)它看起来像
scan 'yourTable', {COLUMNS => 'd:'}
这将返回列族 d
中的所有行。
如果您还想指定从什么RowKeys
开始,它看起来像
scan 'yourTable', {COLUMNS => 'd:', STARTROW => 'word'}
该命令将从行键 word
开始,并获取该点之后的所有行。如果您想将其限制为仅 RowKey 字词
,您还必须添加 STOPROW
。 STOPROW
不包含在结果中。所以你不能那样scan 'yourTable', {COLUMNS => 'd:', STARTROW => 'word', STOPROW => 'word'}
什么都不会返回。
指定 STOPROW
需要了解一些 RowKey 值。我不知道你的值(value)观,所以很难举个好例子。我经常做的是将下一个字符(在 ASCII 集中)用作起始行的最后一个字符。在你的例子中我会尝试
scan 'yourTable', {COLUMNS => 'd:', STARTROW => 'word', STOPROW => 'wore'}
我不会保证这会一直有效,但它可能在大多数情况下都有效。也许所有情况,我只是还没有解决。 :)
希望对您有所帮助。
HBase shell 命令的一个很好的资源是 http://wiki.apache.org/hadoop/Hbase/Shell .
关于hbase - 获取hbase中的所有家庭,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5848703/