python提取hbase数据_python访问hbase数据

1 #!/usr/bin/python

2

3 importgetopt,sys,time4 from thrift.transport.TSocket importTSocket5 from thrift.transport.TTransport importTBufferedTransport6 from thrift.protocol importTBinaryProtocol7 from hbase importHbase8

9 defusage():10 print '''Usage :11 -h: Show help information;12 -l: Show all table in hbase;13 -t {table} Show table descriptors;14 -t {table} -k {key} : show cell;15 -t {table} -k {key} -c {coulmn} : Show the coulmn;16 -t {table} -k {key} -c {coulmn} -v {versions} : Show more version;17 (write by liuhuorong@koudai.com)18 '''

19

20 classgeilihbase:21 def __init__(self):22 self.transport = TBufferedTransport(TSocket("127.0.0.1", "9090"))23 self.transport.open()24 self.protocol =TBinaryProtocol.TBinaryProtocol(self.transport)25 self.client =Hbase.Client(self.protocol)26 def __del__(self):27 self.transport.close()28 defglisttable(self):29 for table inself.client.getTableNames():30 printtable31 defggetColumnDescriptors(self,table):32 rarr=self.client.getColumnDescriptors(table)33 ifrarr:34 for (k,v) inrarr.items():35 print "%-20s\t%s" %(k,v)36 defgget(self,table,key,coulmn):37 rarr=self.client.get(table,key,coulmn)38 ifrarr:39 print "%-15s %-20s\t%s" % (rarr[0].timestamp,time.strftime("%Y-%m-%d %H:%M:%S",time.localtime(rarr[0].timestamp/1000)),rarr[0].value)40 defggetrow(self,table,key):41 rarr=self.client.getRow(table, key)42 ifrarr:43 for (k,v) inrarr[0].columns.items():44 print "%-20s\t%-15s %-20s\t%s" % (k,v.timestamp,time.strftime("%Y-%m-%d %H:%M:%S",time.localtime(v.timestamp/1000)),v.value)45 defggetver(self, table, key, coulmn, versions):46 rarr=self.client.getVer(table,key,coulmn, versions);47 ifrarr:48 for row inrarr:49 print "%-15s %-20s\t%s" % (row.timestamp,time.strftime("%Y-%m-%d %H:%M:%S",time.localtime(row.timestamp/1000)),row.value)50

51 defmain(argv):52 tablename=""

53 key=""

54 coulmn=""

55 versions=""

56 try:57 opts, args = getopt.getopt(argv, "lht:k:c:v:", ["help","list"])58 exceptgetopt.GetoptError:59 usage()60 sys.exit(2)61 for opt, arg inopts:62 if opt in ("-h", "--help"):63 usage()64 sys.exit(0)65 elif opt in ("-l", "--list"):66 ghbase=geilihbase()67 ghbase.glisttable()68 sys.exit(0)69 elif opt == '-t':70 tablename =arg71 elif opt == '-k':72 key =arg73 elif opt == '-c':74 coulmn =arg75 elif opt == '-v':76 versions =int(arg)77 if ( tablename and key and coulmn andversions ):78 ghbase=geilihbase()79 ghbase.ggetver(tablename, key, coulmn, versions)80 sys.exit(0)81 if (tablename and key andcoulmn ):82 ghbase=geilihbase()83 ghbase.gget(tablename, key, coulmn)84 sys.exit(0)85 if (tablename andkey ):86 ghbase=geilihbase()87 ghbase.ggetrow(tablename, key)88 sys.exit(0)89 if(tablename ):90 ghbase=geilihbase()91 ghbase.ggetColumnDescriptors(tablename)92 sys.exit(0)93 usage()94 sys.exit(1)95

96 if __name__ == "__main__":97 main(sys.argv[1:])

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值