一,前言html
二,包安装app
三,表操做DDL学习
四,数据操做DMLspa
上节讲到咱们能够用JavaAPI进行Hbase的操做,可是很明显,Java的API很底层,用起来会很不方便,若是大家学习过Python,能够用Python来对Hbase进行操做。.net
happybase使用:https://happybase.readthedocs.io/en/latest/user.html#establishing-a-connectioncode
安装thrift:https://blog.csdn.net/y472360651/article/details/79050571orm
安装happybasehtm
pip install happybase
建立链接:对象
connection = happybase.Connection('somehost') #连接,端口默认是9090 hbase thrift 启动的默认端口也是9090
列出全部表:blog
table_name_list = connection.tables() # connection.tables():获取Hbase实例中的表名列表,返回一个list
获取表:
table = connection.table(name,user_prefix=True) # connection.table(name,user_prefix=True):获取一个表对象,返回一个对象:happybase.Table
禁用表:在作一些删除操做以前必须先禁用表
connection.disable_table(name) #disable_table(name):禁用表,无返回值
启用表:
connection.enable_table(name) # enable_table(name):启用表,无返回值
建立表:
families = { "cf":dict(), "df":dict() } connection.create_table(name,families) # 若是链接时,有传递表前缀参数时,真实表名将会是:"{}_{}".format(table_prefix,name)
删除表:
connection.delete_table(name,disable=False) #delete_table(name,disable=False):删除表,无返回值 默认是false,若要删除改成true
若要对表进行数据插入等操做,须要先获取表实例。
获取表实例:
table = happybase.Table(name,connection) #happybase.Table(name,connection):获取表实例
获取单元格cells
cells(row, column, versions=None, timestamp=None, include_timestamp=False) # 获取单元格数据,返回一个list
实例:
content = table.cells('row1','cf:1',5,timestamp=1514861929124,include_timestamp=True) print content # [('1', 1514861925674L)]
删除指定行数据:
delete(row, columns=None, timestamp=None, wal=True):删除指定行数据,无返回值
实例:
table.delete(row, columns=None, timestamp=None, wal=True)
插入数据:
put(row, data, timestamp=None, wal=True):插入数据,无返回值
实例:
# 在row1行,cf:1列插入值1 table.put("row1",{"cf:1":"1"})
获取一行数据:
row(row, columns=None, timestamp=None, include_timestamp=False):获取一行数据,返回一个dict
实例:
info = table.row(row, columns=None, timestamp=None, include_timestamp=False)
获取多行数据:
rows(rows, columns=None, timestamp=None, include_timestamp=False):获取多行数据,返回一个list
实例:
info = table.rows(rows, columns=None, timestamp=None, include_timestamp=False)
获取扫描器:
scan(row_start=None, row_stop=None, row_prefix=None, columns=None, filter=None,
timestamp=None, include_timestamp=False, batch_size=1000, scan_batching=None, limit=None, sorted_columns=False, reverse=False):获取一个扫描器,返回一个generator
实例:
scanner = table.scan(row_start=None, row_stop=None, row_prefix=None, columns=None, filter=None, timestamp=None, include_timestamp=False, batch_size=1000, scan_batching=None, limit=None, sorted_columns=False, reverse=False)