通过happybase 操作hbase,在此只是使用了一些常规,简单的操作;
详细自行查看官方文档【http://happybase.readthedocs.io/en/latest/】
# coding: utf-8
import happybase
from pprint import pprint
'''
pip install happybase
time: 08/05/2018
操作hbase
在hbase/bin执行:
hbase-daemon.sh start thrift
'''
class HappyHbase(object):
"""
:param str name:table name
:param str row: the row key
:param list_or_tuple columns: list of columns (optional)
"""
def __init__(self,host,port=9090):
self.conn = happybase.Connection(host, port=port, autoconnect=False)
self.conn.open()
def list_tables(self):
tabels = self.conn.tables()
return tabels
def table(self, name):
table = self.conn.table(name)
return table
def creat(self, name, kw):
"""
:param name: str
:param kw: dict
exp:
kw = {"":dict()}
:return: None
"""
self.conn.create_table(name, kw)
def delete(self, name, row):
table = self.table(name)
table.delete(row)
def delete_column(self, name, row, columns):
self.table(name).delete(row, columns=columns)
def drop(self, name):
self.conn.disable_table(name)
self.conn.delete_table(name)
def cell(self, name, row, column):
"""
:return: list
"""
return self.table(name).cells(row, column)
def families(self, name):
"""
:return: dict
"""
return self.conn.table(name).families()
def put(self, name, row, kw):
self.table(name).put(row, kw)
def get(self, name, row):
"""
:return: dict
"""
return self.table(name).row(row)
def get_column(self, name, row, columns):
"""
:return: dict
"""
return self.table(name).row(row, columns)
def scan(self, name):
nu = hap.conn.table(name).scan()
for i in nu:
print i
def incr(self, name, row, column):
self.table(name).counter_inc(row, column=column)
def dec(self, name, row, column):
self.table(name).counter_dec(row, column=column)
def close(self):
self.conn.close()
if __name__ == '__main__':
hap = HappyHbase(host='',port=9090)
d = {
"user": dict(),
"info": dict(),
}
hap.creat('test_1', d)
table_name = "test_1"
date = {
"user:": "xiaoming",
"info:address": "bj",
"info:sex": "F",
}
for i in range(3):
hap.put(table_name, str(i), date)
hap.delete_column(table_name, "1", columns=['info:sex'])
print hap.get_column(table_name, "1", columns=["info"])
print hap.cell(table_name, '1', "info:sex")
hap.scan(table_name)
hap.close()
批处理:
官方的例子:
b = table(name).batch()
b.put(b'row-key-1', {b'cf:col1': b'value1', b'cf:col2': b'value2'})
b.put(b'row-key-2', {b'cf:col2': b'value2', b'cf:col3': b'value3'})
b.put(b'row-key-3', {b'cf:col3': b'value3', b'cf:col4': b'value4'})
b.delete(b'row-key-4')
b.send()
OR
with table.batch() as b:
b.put(b'row-key-1', {b'cf:col1': b'value1', b'cf:col2': b'value2'})
b.put(b'row-key-2', {b'cf:col2': b'value2', b'cf:col3': b'value3'})
b.put(b'row-key-3', {b'cf:col3': b'value3', b'cf:col4': b'value4'})
b.delete(b'row-key-4')
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。