HBaseからデータを新しい順に取ってきたい[できない]

最近、pythonでHBaseを触ったり何なりしています。

 

で、HBaseからデータを取り出したいんですけど、こう、データが順に並んでいるじゃないですか、そのうちの最新のものから順に取ってきたいんですよ。

まぁ、できてはいないんですけど、途中までのメモ(だれかが幸せになれますように。。できれば、教えてくれますように)

 

 

from thrift import Thrift
from thrift.transport import TSocket
from thrift.transport import TTransport
from thrift.protocol import TBinaryProtocol
from hbase import Hbase
from hbase.ttypes import TScan
transport = TSocket.TSocket('localhost', 9090)
transport.open()
transport = TTransport.TBufferedTransport(transport)
protocol = TBinaryProtocol.TBinaryProtocol(transport)
client = Hbase.Client(protocol)
 
print(client.getTableNames()) #clientが持つテーブル名を表示

 

こんな感じでつながる訳です。

 

ここからテストデータを取り出したい訳ですけど、

 

table_name = 'test_table'   #テーブル名の指定
row_start = 'test/0000000000000000.000000'  #照合の最初の値
row_stop = 'test/9999999999999999.999999' #照合の最後の値
limit = 10  #取り出す件数
column = {}  #取り出したいカラム名を指定
 
 
scan_id = client.scannerOpenWithStop(table_name, row_start, row_stop, column) #scanするIDを取得
items = client.scannerGetList(scan_id, limit)  #複数件数のデータがあるときリストに保存
items = client.scannerGet(scan_id)  #一つのデータがあるとき

 

 

ここでrow_startからrow_stopまでのデータをlimit分だけ取り出すのにrow_startの値から数え始めるので値が大きいものが最新のものだとすると区間の古いものから順に取り出されてしまうわけです。

これをなんとか逆順にしたい。

 

う〜ん。違うメソッドもあるんだけどそっち使うべきなのかなぁ。いちおうscannerOpenWithStopにはattribute与えれるから、その辺でなんとかできるのか。。。う〜ん。

 

ご教授願いたい。

 

[参考]

http://symfoware.blog68.fc2.com/blog-entry-312.html

http://d.hatena.ne.jp/otougarasi/20101130/1291103428