user2360096
user2360096

Reputation: 133

row keys through the hbase shell?

I am using

 scan 'table_name', { COLUMNS => 'column_family:column_qualifier', LIMIT => 2 }

to list 2 rows in a hbase table but I would like to know if it is possible to achieve following using hbase shell:

Questions

  1. list all row keys through the hbase shell?
  2. list only those rows, whose row keys have a particular word in it?

Upvotes: 12

Views: 28796

Answers (3)

Ashwin91
Ashwin91

Reputation: 49

KeyOnlyFilter - takes no arguments. Returns the key portion of each key-value pair.

Syntax: KeyOnlyFilter ()

Upvotes: 4

Amit Kumar
Amit Kumar

Reputation: 21

Earlier solution would be:

scan 'test', { 
  COLUMNS => ['col_family_name:col_name'], 
  FILTER => "RowFilter(=, 'substring:the_string_to_be_compared')" 
}

Upvotes: 2

Tariq
Tariq

Reputation: 34184

A1. hbase(main):015:0> count 'table_name', INTERVAL => 1

A2. Use RowKey filter with SubstringComparator.

Usage :

hbase(main):003:0> import org.apache.hadoop.hbase.filter.CompareFilter
hbase(main):005:0> import org.apache.hadoop.hbase.filter.SubstringComparator
hbase(main):006:0> scan 'test', {FILTER => org.apache.hadoop.hbase.filter.RowFilter.new(CompareFilter::CompareOp.valueOf('EQUAL'),SubstringComparator.new("word_by_which_you_want_to_search"))}

Upvotes: 39

Related Questions