Python API(happybase)操作Hbase案例

一、任务需求分析及HBase表格设计

(1)需求说明

某某自来水公司,需要存储大量的缴费明细数据。以下截取了缴费明细的一部分内容:

我们有如上数据集,需要将其导入到HBase中即可,具体数据集文件存放在百度网盘:

链接:https://pan.baidu.com/s/14n-2XoXyxZL7hN80cNTJMw 
提取码:qavu

(2)HBase表格设计

表名:WATER_BILL
行键(RowKey)列族:user列族:order
列限定符单元格值列限定符单元格值
4944191name登卫红pay_time2020-5-10
4944191addr贵州省铜仁市德江县7单元267室current_count308.1
4944191sexlast_count283.1
4944191usage25
4944191total_money150
4944191check_date2020-4-25
4944191latest_pay_date2020-6-9
................

 二、使用Python API创建HBase表格

'''
水表业务:
Hbase表格的创建
'''
#导入happybase库
import happybase
#构建Hbase的连接
conn = happybase.Connection(
    host = "192.168.25.200",  #主机IP
    port = 9090
)
#设置水费表格的名称为WATER_BILL(注意:在HBase API代码中,数据都是以Bytes字节数组的形式操作)
table_name = b"WATER_BILL"
#创建表格WATER_BILL(先检查表格是否存在,不存在则创建)
#通过conn连接对象的tables()可以获取全部的表格
tbs = conn.tables()
#if判断table_name是否在tbs中
if table_name in tbs:
    print(f"{table_name}已存在,无需创建")
else:
    print(f"{table_name}不存在,请创建它。")
    conn.create_table(
        table_name.decode(),     #将字节字符串转为普通字符串
        {
            'user':dict(max_versions = 5),  #列族信息
            'order':dict()                 #列族信息
        }
    )
#打印当前的表格信息
print(f"当前的表格:{conn.tables()}")
#关闭连接
conn.close()

三、使用Python API插入数据

#导入happybase库
import happybase
#构建Hbase的连接
conn = happybase.Connection(
    host = "192.168.25.200",  #主机IP
    port = 9090
)
#往"WATER_BILL"表格内插入数据(读取文件的每行数据)
water_table = conn.table("WATER_BILL")
for line in open("WATER_BILL.TSV",encoding="UTF-8"):
    line = line.replace("\n","")
    # print(line)
    arrs = line.split('\t')
    # print(arrs)
    rowkey = arrs[0].encode()#行键
    data = {
        b'user:name':arrs[1].encode(),
        b'user:addr': arrs[2].encode(),
        b'user:sex': arrs[3].encode(),
        b'order:pay_time': arrs[4].encode(),
        b'order:current_count': arrs[5].encode(),
        b'order:last_count': arrs[6].encode(),
        b'order:usage': arrs[7].encode(),
        b'order:total_money': arrs[8].encode(),
        b'order:check_date': arrs[9].encode(),
        b'order:latest_pay_time': arrs[10].encode(),
    }
    water_table.put(rowkey,data)

四、使用Python API查询数据

#1.导入happybase库
import happybase
#2.建立HBase的连接
conn = happybase.Connection(
    host="192.168.25.200",   #主机名
    port=9090,      #Thrift的默认端口号
    timeout=60000   #超时时间
)
#3.通过conn对象,调用table方法,获取WATER_BILL表格
water_table = conn.table('WATER_BILL')
#查询数据
row = water_table.row(b'9054826')
# print(row)
# print(type(row))
for key in row.keys():
    print(f"列族:列限定符:{key.decode()},value:{row[key].decode()}")
#4.关闭连接
conn.close()

五、使用Python API删除数据

#导入happybase库
import happybase
#构建Hbase的连接
conn = happybase.Connection(
    host = "192.168.25.200",  #主机IP
    port = 9090
)
#获取表格对象
water_table = conn.table('WATER_BILL')
#删除表格的指定子列数据
water_table.delete(b'9054826',columns=[b'user:sex',b'order:usage'])
#删除表格的某一行数据(一个rowkey)
water_table.delete(b'9054826')
  • 14
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: HappybasePython 中一个用于操作 Apache HBase 数据库的库,而 Apache HBase 是一个分布式的、面向列的 NoSQL 数据库。在 Windows 上使用 Happybase 时,需要先安装 HBase。 以下是在 Windows 上使用 Happybase 的步骤: 1. 下载并安装 HBase:从 HBase 官网下载最新版本的 HBase,并按照提示进行安装。 2. 配置 HBase:在 HBase 的安装目录下找到 conf 目录,编辑 hbase-site.xml 文件,将以下配置添加到文件中: ``` <configuration> <property> <name>hbase.zookeeper.quorum</name> <value>localhost</value> </property> <property> <name>hbase.zookeeper.property.clientPort</name> <value>2181</value> </property> <property> <name>hbase.rootdir</name> <value>file:///C:/hbase</value> </property> </configuration> ``` 其中 hbase.zookeeper.quorum 指定 ZooKeeper 的地址,hbase.rootdir 指定 HBase 存储数据的根目录。 3. 启动 HBase:在 HBase 的安装目录下找到 bin 目录,执行以下命令启动 HBase: ``` start-hbase.bat ``` 4. 安装 Happybase:在命令行中执行以下命令安装 Happybase: ``` pip install happybase ``` 5. 使用 Happybase:在 Python 中导入 Happybase,连接到 HBase 并进行操作,例如: ```python import happybase connection = happybase.Connection('localhost') table = connection.table('my_table') table.put(b'row_key', {b'cf:col1': b'value1', b'cf:col2': b'value2'}) row = table.row(b'row_key') print(row[b'cf:col1']) ``` 这是一个示例代码,连接到本地的 HBase 实例,向名为 my_table 的表中插入一行数据,然后从表中读取该行数据并输出其中的一个列族。 ### 回答2: HappyBase是一个用于与Apache HBase进行交互的Python库。它提供了简洁的API,可以方便地进行HBase数据库的连接、表格的创建、数据的插入、查询等操作。HappyBase是一个跨平台的库,可以在Windows、Linux等操作系统上使用。 在Windows上使用HappyBase,首先需要确保Python已经正确地安装在你的电脑上。可以从官方网站https://www.python.org/downloads/下载并安装最新版本的Python。 安装完Python后,可以使用`pip`命令来安装HappyBase库。在命令行中运行以下命令来安装: ``` pip install happybase ``` 安装完成后,你就可以在Python脚本中引入HappyBase库,并开始使用它来连接HBase数据库。 以下是一个简单的例子,演示了如何使用HappyBase连接HBase数据库,并创建一个表格,插入一些数据: ```python import happybase # 连接HBase数据库 connection = happybase.Connection('localhost', port=9090) # 创建表格 connection.create_table( 'my_table', { 'cf': dict(max_versions=10) } ) # 获取表格对象 table = connection.table('my_table') # 插入数据 table.put( b'row1', { b'cf:col1': b'value1', b'cf:col2': b'value2' } ) # 查询数据 row = table.row(b'row1') print(row) # 删除表格 connection.delete_table('my_table') # 关闭连接 connection.close() ``` 以上是在Windows上使用HappyBase的简单示例。你可以根据自己的需求,使用HappyBase进行更多的操作,如数据的查询、更新、删除等。同时,你也可以参考HappyBase的官方文档来了解更多关于它的使用方法和API的详情。 ### 回答3: HappyBase是一个用于连接和操作Apache HBase数据库的Python库。它是基于Thrift接口实现的,可以在Windows系统上使用。 HappyBase在Windows上的安装非常简单。首先,确保Python已经安装在你的系统上。然后,打开命令行终端,使用pip安装HappyBase库。在命令行中输入以下命令: pip install happybase 安装完成后,你就可以在Windows环境中使用HappyBase库了。 使用HappyBase连接到HBase数据库非常容易。首先,导入HappyBase库: import happybase 然后,使用HappyBase库的connect函数连接到HBase数据库。connect函数需要指定HBase的主机名和端口号。例如: connection = happybase.Connection('localhost', port=9090) 连接成功后,你可以使用connection对象执行各种操作,如创建表、插入数据、删除数据等。下面是一个简单的示例: # 创建表 connection.create_table( 'my_table', { 'cf1': dict(max_versions=10), 'cf2': dict(max_versions=1, block_cache_enabled=False), 'cf3': dict() } ) # 插入数据 table = connection.table('my_table') table.put('row1', {'cf1:col1': 'value1', 'cf2:col2': 'value2'}) # 获取数据 row = table.row('row1') print(row['cf1:col1']) # 删除数据 table.delete('row1') 这只是HappyBase库的一小部分功能,它可以完成更多复杂的操作,如扫描表、过滤数据等。你可以参考HappyBase库的官方文档,了解更多详细信息。 总的来说,HappyBase是一个方便易用的Python库,可以在Windows系统上连接和操作HBase数据库。无论是创建表、插入数据,还是查询和删除数据,HappyBase都提供了简洁的API和丰富的功能,非常适合在Windows环境下使用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wanglingli95

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值