Python之操作HBASE数据库
目前有两个库可以操作HBASE:hbase-thrift 和 happybase
happybase使用起来比较简单方便,因此重点学习该库,hbase-thrift只做简要介绍。
(一)hbase-thrift
1、使用前先添加库和依赖库:
pip install thrift pip install hbase-thrift pip install google-cloud pip install google-cloud-vision pip install kazoo
2、连接数据库的配置信息:
#先在Linux上启动HBASE server #/opt/cloudera/parcels/CDH/lib/hbase/bin/hbase-daemon.sh --config /opt/cloudera/parcels/CDH/lib/hbase/conf foreground_start thrift --infoport 9096 -p 9091 #再运行该python脚本连接服务器from thrift.transport import TSocket from hbase import Hbase from hbase.ttypes import *host = "xxx.xxx.xxx.xxx" port = 9091 framed = Falsesocket = TSocket.TSocket(host, port) if framed:transport = TTransport.TFramedTransport(socket) else:transport = TTransport.TBufferedTransport(socket) protocol = TBinaryProtocol.TBinaryProtocol(transport) client = Hbase.Client(protocol)
3、操作数据库
print ("Thrift2 Demo") print ("This demo assumes you have a table called \"example\" with a column family called \"family1\"")#打开连接 transport.open()# 获取所有表名 tableNames = client.getTableNames() print('tableNames:', tableNames)#关闭连接 transport.close()################################################# # #结果为: # Thrift2 Demo # This demo assumes you have a table called "example" with a column family called "family1" # tableNames: ['lrx_hbase_test', 'lrx_hbase_test2', 'lrx_hbase_test3', 'lrx_test']
(二)happybase
# pip install thrift # pip install happybase # 先在Linux上启动HBASE server # /opt/cloudera/parcels/CDH/lib/hbase/bin/hbase-daemon.sh --config /opt/cloudera/parcels/CDH/lib/hbase/conf foreground_start thrift --infoport 9096 -p 9091 & # 再运行python脚本连接服务器 import happybase from conf import setting # 创建连接,通过参数size来设置连接池中连接的个数 connection = happybase.Connection(**setting.HBASE) # 打开传输,无返回值 connection.open() # 创建表,无返回值 # connection.create_table('lrx_test', # {# 'data':dict() # }) # 获取一个表对象,返回一个happybase.table.Table对象(返回二进制表名) table0 = connection.table('lrx_test') print('表对象为:') print(table0) #<happybase.table.Table name=b'lrx_test'> # 获取表实例,返回一个happybase.table.Table对象(返回表名) table = happybase.Table('lrx_test',connection) print('表实例为:') print(table) #<happybase.table.Table name='lrx_test'> # 插入数据,无返回值 ----在row1行,data:1列插入值value1 for i in range(5):table.put('row%s' %i,{'data:%s'%i:'%s' %i} ) table.put('row5',{'data:5':'value1'})# 获取单元格数据,返回一个list content = table.cells('row1','data:1') print (content) #[b'value1', b'value1'] # 获取计数器列的值,返回当前单元格的值 # content2 = table.counter_get('row2','data:2') # print(content2) #0 # 获取一个扫描器,返回一个generator scanner = table.scan() for k,v in scanner:print(k,v) ########################################### # #结果为: # #b'row0' {b'data:0': b'0'} # b'row1' {b'data:1': b'value1'} # b'row2' {b'data:2': b'2'} # b'row3' {b'data:3': b'3'} # b'row4' {b'data:4': b'4'}print(scanner) #<generator object Table.scan at 0x000001E17CCDAF10> # 获取一行数据,返回一个dict info = table.row('row2') info1={} for k,v in info.items():info1[k.decode()]=v.decode() print(info1) #获取表名 table = connection.tables() print(table) # 关闭传输,无返回值 connection.close()
转载于:https://www.cnblogs.com/yanwuliu/p/10695892.html
Python之操作HBASE数据库相关推荐
- Python应用实战系列-如何通过Python来操作Oracle数据库:cx_Oracle
最近需要将一批数据从csv文件中迁移到Oracle数据库中,打算用Python来实现,趁着这个机会,写一篇博客学习总结一些如何使用Python来操作Oracle数据库. 1 安装与导入 Python操 ...
- linux python开发环境sql数据迁移到mysql_linux环境下python怎样操作mysql数据库
展开全部 linux环境下python怎样操作mysql数据库呢?方法如下: 首先在Linux环境下安装mysql-python 1.下载mysql-python 打开终端: cd /usr/loca ...
- HBaseAPI——IDEA操作HBase数据库HBase与Hive的集成
目录 一.IDEA操作HBase数据库 (一)添加依赖 (二)配置log4j (三)IDEA连接HBase并插入数据 1.代码实现 2.查看命名空间的表 (四)java操作HBase数据库--单元测试 ...
- SpringBoot 使用Phoenix操作HBase数据库教程
SpringBoot 使用Phoenix操作HBase数据库教程 文章目录 添加 Phoenix 相关依赖 控制器实现Hbase数据库操作 好的html源码下载 文章目录 借助 Apache Phoe ...
- 【Python】Python 2 和 Python 3 操作 MySQL 数据库实现创建表、删除表、增删改查操作
1.MySQL数据库和表的编码格式 (1)创建数据库并指定字符集 mysql> create database testpythondb character set utf8; Query OK ...
- Python 2 和 Python 3 操作 MySQL 数据库实现创建表、删除表、增删改查操作
1.MySQL数据库和表的编码格式 (1)创建数据库并指定字符集 mysql> create database testpythondb character set utf8; Query OK ...
- python读写操作redis数据库
python读写操作redis数据库 redis有16个逻辑数据库(编号db0到db15),每个逻辑数据库数据是隔离的,默认db0.选择第n个逻辑数据库,命令select n ,python连接时可指 ...
- python hbase_Python操作Hbase
Python操作Hbase的增删改查操作 增改数据put, row操作 put(row, data, timestamp=None, wal=True)---> 插入数据,无返回值 row--- ...
- Python如何操作Access数据库及如何操作accdb文件
目前来说,Access数据库的使用度相对较少,所以在使用Python操作Access数据库文件时,相应的文章和教程也较少.为了解决各位在类似场景下的难题,特意写文章如下: 1.安装模块pyodbc p ...
最新文章
- Laravel 中的 Many-To-Many
- Linux 系统 文件锁 fcntl函数详解
- MONO Jexus部署最佳体验
- 于谦一共收了几个徒弟,为什么?
- google控制台使用
- 拒绝充钱!教你一招避开网盘限速
- multisim安装完成后显示安装程序损坏的免费解决方案
- unicode 表情对照表
- (毕业设计资料)基于单片机51单片机智能药盒控制系统设计
- Android蓝牙通讯
- 十则:程序员“笑话”据说只有真正的程序员才看得懂
- uni-app 跳转至手机浏览器
- 10个常用的JS工具库
- SET NOCOUNT { ON | OFF }
- uniapp 即时通讯_uni-App 仿微信 App 即时通讯|vue+uniapp 聊天
- GeoGebra入门之一分钟制作光的反射动态仿真模拟课件
- 迷你WiFi摄像机需要多少兆的带宽才不会卡顿
- 帮我写一段dart代码,目的是将字符串里的windows、macos、linux系统中的文件名保留字符替换成中文全角字符。使最后返回的字符串可以用于windows、macos、linux的文件名...
- SharePoint designer 2013 中新的workflow action(操作)
- radan7破解版|radan7中文破解版|2018最新版