pycharm连接hbase数据库

下载库:pip install happybase

以下代码即可连接hbase数据库并查看可以使用的表;

def con_hbase():
    # 建立连接
    conn = happybase.Connection('IP地址')
    conn.open() #打开传输

    # 查看所有table   
    print(conn.tables()) # 返回的是一个list

    # 获取一个table对象
    table = conn.table('article:women')
    print(table)
con_hbase()

以下代码即可查询相对应的table中的数据;

for key, value in table.scan():
	print(key,value)

实例:

# 全局扫描
for key, value in table.scan(): # 遍历table
    row = table.row(row=key, columns=['info:keyword'])# key为相应的row_key,value 即为一整行的数据
    keyword = row[b'info:keyword'].decode().strip() # 打印多行数据 因为hbase中的数据是二进制的,所以我们进行decode就会转成中文!strip()去空格的,这个很基础的东西不过多了解了哈哈哈哈
    print(keyword)

**row(row, columns=None, timestamp=None, include_timestamp=False):获取一行数据,返回一个dict

row:行;
columns: 列,默认为None,获取所有列,可传入一个list或tuple来指定获取列;
timestamp:时间戳。默认为None,即返回最大的那个时间戳的数据。可传入一个时间戳来获取小于此时间戳的最大时间戳的版本数据
include_timestamp:是否返回时间戳数据,默认为False

**rows(rows, columns=None, timestamp=None, include_timestamp=False):**获取多行数据,返回一个list
rows:行,可传入一个list或tuple指定获取
columns: 列,默认为None,即获取所有列,可传入一个list或tuple来指定获取
timestamp:时间戳,默认为None,即返回最大的那个时间戳的数据。可传入一个时间戳来获取小于此时间戳的最大时间戳的版本数据。
include_timestamp:是否返回时间戳数据,默认为False

获取扫描器,返回一个generator
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)
row_start:起始行,默认None,即第一行,可传入行号指定从哪一行开始
row_stop:结束行,默认None,即最后一行,可传入行号指定到哪一行结束(不获取此行数据)
row_prefix:行号前缀,默认为None,即不指定前缀扫描,可传入前缀来扫描符合此前缀的行
columns:列,默认为None,即获取所有列,可传入一个list或tuple来指定获取列
filter:过滤字符串
timestamp:时间戳,默认为None,即返回最大的那个时间戳的数据。可传入一个时间戳来获取小于此时间戳的最大时间戳的版本数据
include_timestamp:是否返回时间戳数据,默认为False
batch_size:用于检索结果的批量大小
scan_batching:服务端扫描批处理
limit:数量
sorted_columns:是否返回排序的列(根据行名称排序)
reverse:是否执行反向扫描

参数详情是之前做笔记的时候记下并直接复制上去的,如原作者或知道原作者的读客 看到请联系我删除或附原文章地址链接哦~ thanks~