环境:happybase安装:
1.pip install happybase
2.无法连接网络时,在pypi下载whl文件或.tar.gz文件安装
import happybase
# 打开连接
connection = happybase.Connection('somehost')
# 列出可用的表
print(connection.tables())
# 创建表
connection.create_table(
'mytable',
{'cf1': dict(max_versions=10),
'cf2': dict(max_versions=1, block_cache_enabled=False),
'cf3': dict(), # use defaults
}
)
# 获取表的实例,传入表名
table = connection.table('mytable')
# 从表中检索单个行,并将其作为字典返回
row = table.row(b'row-key')
# prints the value of cf1:col1
print(row[b'cf1:col1'])
# 从表中检索多个行键,并将其作为(key, data)元组返回
rows = table.rows([b'row-key-1', b'row-key-2'])
for key, data in rows:
print(key, data)
# 以字典格式返回(无序),从表中检索多个行键的值
rows_as_dict = dict(table.rows([b'row-key-1', b'row-key-2']))
# 以字典格式返回(有序),从表中检索多个行键的值
from collections import OrderedDict
rows_as_ordered_dict = OrderedDict(table.rows([b'row-key-1', b'row-key-2']))
# 扫描表(指定起始行、结束行,扫描全表则不设置)
for key, data in table.scan(row_start=b'aaa', row_stop=b'xyz'):
print(key, data)
# 扫描表(加过滤条件:值等于XXX的列)
for key, data in table.scan(filter="ValueFilter(=,'binary:XXX')"):
print(key, data)
# 扫描表(加过滤条件:值包含XXX的列)
for key, data in table.scan(filter="ValueFilter(=,'substring:XXX')"):
print(key, data)
# 删除记录(行)
table.delete(b'row-key')
# 删除行中的某几列
table.delete(b'row-key', columns=[b'cf1:col1', b'cf1:col2'])
# 删除表(先禁用表,再删除)
connection.disable_table(table_name)
connection.delete_table(table_name)