一,前言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)