python操作 hbase 数据的方法


Posted in Python onDecember 18, 2016

配置 thrift

python使用的包 thrift

个人使用的python 编译器是pycharm community edition. 在工程中设置中,找到project interpreter, 在相应的工程下,找到package,然后选择 “+” 添加, 搜索 hbase-thrift (Python client for HBase Thrift interface),然后安装包。

安装服务器端thrift。

参考官网,同时也可以在本机上安装以终端使用。

thrift Getting Started

也可以参考安装方法 python 调用HBase 范例

首先,安装thrift

下载thrift,这里,我用的是thrift-0.7.0-dev.tar.gz 这个版本

tar xzf thrift-0.7.0-dev.tar.gz
cd thrift-0.7.0-dev
sudo ./configure ?with-cpp=no ?with-ruby=no
sudo make
sudo make install

然后,到HBase的源码包里,找到

src/main/resources/org/apache/hadoop/hbase/thrift/

执行

thrift ?gen py Hbase.thrift
mv gen-py/hbase/ /usr/lib/python2.4/site-packages/ (根据python版本可能有不同)

获取数据示例 1

# coding:utf-8

from thrift import Thrift
from thrift.transport import TSocket
from thrift.transport import TTransport
from thrift.protocol import TBinaryProtocol
from hbase import Hbase
# from hbase.ttypes import ColumnDescriptor, Mutation, BatchMutation
from hbase.ttypes import *

import csv


def client_conn():
 # Make socket
 transport = TSocket.TSocket('hostname,like:localhost', port)
 # Buffering is critical. Raw sockets are very slow
 transport = TTransport.TBufferedTransport(transport)
 # Wrap in a protocol
 protocol = TBinaryProtocol.TBinaryProtocol(transport)
 # Create a client to use the protocol encoder
 client = Hbase.Client(protocol)
 # Connect!
 transport.open()
 return client

if __name__ == "__main__":

 client = client_conn()

 # r = client.getRowWithColumns('table name', 'row name', ['column name'])
 # print(r[0].columns.get('column name')), type((r[0].columns.get('column name')))

 result = client.getRow("table name","row name")
 data_simple =[]

 # print result[0].columns.items()

 for k, v in result[0].columns.items(): #.keys()
  #data.append((k,v))
  # print type(k),type(v),v.value,,v.timestamp
  data_simple.append((v.timestamp, v.value))

 writer.writerows(data)
 csvfile.close()

 csvfile_simple = open("data_xy_simple.csv", "wb")
 writer_simple = csv.writer(csvfile_simple)
 writer_simple.writerow(["timestamp", "value"])
 writer_simple.writerows(data_simple)
 csvfile_simple.close()

 print "finished"

会基础的python应该知道result是个list,result[0].columns.items()是一个dict 的键值对。可以查询相关资料。或者通过输出变量,观察变量的值与类型。

说明:上面程序中 transport.open()进行链接,在执行完后,还需要断开transport.close()

目前只涉及到读数据,之后还会继续更新其他dbase操作。

以上这篇python操作 hbase 数据的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python代码的打包与发布详解
Jul 30 Python
python MySQLdb Windows下安装教程及问题解决方法
May 09 Python
python实现计算倒数的方法
Jul 11 Python
使用Python生成随机密码的示例分享
Feb 18 Python
Python3利用SMTP协议发送E-mail电子邮件的方法
Sep 30 Python
Django的HttpRequest和HttpResponse对象详解
Jan 26 Python
Python中.join()和os.path.join()两个函数的用法详解
Jun 11 Python
浅谈python 中类属性共享的问题
Jul 02 Python
简单了解django缓存方式及配置
Jul 19 Python
对tensorflow中的strides参数使用详解
Jan 04 Python
Python getsizeof()和getsize()区分详解
Nov 20 Python
Python语言内置数据类型
Feb 24 Python
Python合并字典键值并去除重复元素的实例
Dec 18 #Python
python利用matplotlib库绘制饼图的方法示例
Dec 18 #Python
浅谈Python的垃圾回收机制
Dec 17 #Python
谈谈如何手动释放Python的内存
Dec 17 #Python
深入理解NumPy简明教程---数组3(组合)
Dec 17 #Python
深入理解NumPy简明教程---数组2
Dec 17 #Python
深入理解NumPy简明教程---数组1
Dec 17 #Python
You might like
PHP依赖倒置(Dependency Injection)代码实例
2014/10/11 PHP
PDO::getAttribute讲解
2019/01/28 PHP
js获取网页高度(详细整理)
2012/12/28 Javascript
JS增加行复制行删除行的实现代码
2013/11/09 Javascript
javascript实现的一个带下拉框功能的文本框
2014/05/08 Javascript
javascript arguments使用示例
2014/12/16 Javascript
了解Javascript的模块化开发
2015/03/02 Javascript
javascript实现方法调用与方法触发小结
2016/03/26 Javascript
AngularJS 输入验证详解及实例代码
2016/07/28 Javascript
详解Angular 自定义结构指令
2017/06/21 Javascript
Vue2.0设置全局样式(less/sass和css)
2017/11/18 Javascript
深入浅析JS中的严格模式
2018/06/04 Javascript
微信小程序入口场景的问题集合与相关解决方法
2019/06/26 Javascript
细述Javascript的加法运算符的具体使用
2019/10/18 Javascript
[03:42]2014DOTA2国际邀请赛 第三日比赛排位扑朔迷离
2014/07/12 DOTA
[00:43]DOTA2小紫本全民票选福利PA至宝全方位展示
2014/11/25 DOTA
[04:17]DOTA2完美盛典,rOtk、BurNIng携手巴图演唱《倔强》
2017/11/28 DOTA
[02:58]魔廷新尊——痛苦女王至宝语音台词节选
2020/06/14 DOTA
使用python统计文件行数示例分享
2014/02/21 Python
Python help()函数用法详解
2014/03/11 Python
实例详解Matlab 与 Python 的区别
2019/04/26 Python
Python2.7实现多进程下开发多线程示例
2019/05/31 Python
Python3 实现文件批量重命名示例代码
2019/06/03 Python
PyQt5实现从主窗口打开子窗口的方法
2019/06/19 Python
python Dijkstra算法实现最短路径问题的方法
2019/09/19 Python
Python API 操作Hadoop hdfs详解
2020/06/06 Python
英国评分最高的女性剃须刀订阅盒:FFS Beauty
2018/01/25 全球购物
基督教卡片、励志礼品、家居装饰等:DaySpring
2018/10/12 全球购物
String这个类型的class为何定义成final?
2012/11/13 面试题
党员年终民主评议的自我评价
2013/11/05 职场文书
电大毕业个人生自我鉴定
2014/03/26 职场文书
大学生实训报告总结
2014/11/05 职场文书
“5.12”护士节主持词
2015/07/04 职场文书
八年级作文之友谊
2019/12/02 职场文书
ConstraintValidator类如何实现自定义注解校验前端传参
2021/06/18 Java/Android
Linux系统下MySQL配置主从分离的步骤
2022/03/21 MySQL