hbase|python连接hbase获取数据

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()

【hbase|python连接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~

    推荐阅读