Ваш вопрос неясен, откуда вы пытаетесь получить сканер, поэтому я собираюсь рассматривать его так, как будто это из командной строки HBase.Я использовал библиотеку Thrift для взаимодействия с hbase, и команды CLI довольно явно это отражают.Я предполагаю, что они также будут хорошо работать с любым другим интерфейсом, для которого вы получаете сканер.
Чтобы получить все строки для определенного семейства столбцов, вы должны использовать следующую команду
scan 'table_name', {COLUMNS => 'col_family:'}
Для вашего случая (минус «имя_таблицы», потому что я этого не знаю) это будет выглядеть примерно так:
scan 'yourTable', {COLUMNS => 'd:'}
Это вернет все строки семейства столбцов d
.
Если вы также хотите указать, с чего начинать RowKeys
, это будет выглядеть примерно так:
scan 'yourTable', {COLUMNS => 'd:', STARTROW => 'word'}
Эта команда НАЧНЕТСЯ с клавиши строки word
и получит все строки после этой точки.Если вы хотите ограничить его значением RowKey word
, вам также нужно будет добавить STOPROW
.STOPROW
не входит в результаты.Таким образом, вы НЕ МОЖЕТЕ делать scan 'yourTable', {COLUMNS => 'd:', STARTROW => 'word', STOPROW => 'word'}
, поскольку это ничего не вернет.Указание STOPROW
требует некоторых знаний о значениях RowKey.Я не знаю ваших ценностей, поэтому сложно привести хороший пример.Я часто использую следующий символ (в наборе ASCII) для последнего символа моего начального ряда.В вашем примере я бы попробовал
scan 'yourTable', {COLUMNS => 'd:', STARTROW => 'word', STOPROW => 'wore'}
Я не собираюсь обещать, что это будет работать постоянно, но, скорее всего, в большинстве случаев будет работать.Возможно, во всех случаях, я просто не сработал.:)
Надеюсь, это поможет.
Хороший ресурс для команд оболочки HBase - http://wiki.apache.org/hadoop/Hbase/Shell.