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使用cPickle模块序列化实例
Sep 25 Python
Python变量和字符串详解
Apr 29 Python
python实现员工管理系统
Jan 11 Python
python 多维切片之冒号和三个点的用法介绍
Apr 19 Python
Python实现自定义顺序、排列写入数据到Excel的方法
Apr 23 Python
Django跨域请求问题的解决方法示例
Jun 16 Python
python实现多人聊天室
Mar 31 Python
Python检测数据类型的方法总结
May 20 Python
python实现动态创建类的方法分析
Jun 25 Python
Python for循环通过序列索引迭代过程解析
Feb 07 Python
什么是python的id函数
Jun 11 Python
Python函数中apply、map、applymap的区别
Nov 27 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读取flv文件的播放时间长度
2009/09/03 PHP
php获取apk包信息的方法
2014/08/15 PHP
php cli配置文件问题分析
2015/10/15 PHP
PHP的图像处理实例小结【文字水印、图片水印、压缩图像等】
2019/12/20 PHP
基于jquery的滚动条滚动固定div(附演示下载)
2012/10/29 Javascript
js自定义事件及事件交互原理概述(一)
2013/02/01 Javascript
js判断上传文件的类型和大小示例代码
2013/10/18 Javascript
JQuery显示、隐藏div的几种方法简明总结
2015/04/16 Javascript
分享15个大家都熟知的jquery小技巧
2015/12/02 Javascript
基于BootStrap Metronic开发框架经验小结【五】Bootstrap File Input文件上传插件的用法详解
2016/05/12 Javascript
jQuery插件artDialog.js使用与关闭方法示例
2017/10/09 jQuery
Vue+Jwt+SpringBoot+Ldap完成登录认证的示例代码
2018/05/21 Javascript
vue.js绑定事件监听器示例【基于v-on事件绑定】
2018/07/07 Javascript
Vue使用zTree插件封装树组件操作示例
2019/04/25 Javascript
Node.js 路由的实现方法
2019/06/05 Javascript
JavaScript 格式化数字、金额、千分位、保留几位小数、舍入舍去
2019/07/23 Javascript
vue项目中使用eslint+prettier规范与检查代码的方法
2020/01/16 Javascript
Vue中qs插件的使用详解
2020/02/07 Javascript
Vue自定义组件的四种方式示例详解
2020/02/28 Javascript
Vue-cli3生成的Vue项目加载Mxgraph方法示例
2020/05/31 Javascript
在webstorm中配置less的方法详解
2020/09/25 Javascript
python 自动提交和抓取网页
2009/07/13 Python
Python使用PIL库实现验证码图片的方法
2016/03/11 Python
python图像常规操作
2017/11/11 Python
Python何时应该使用Lambda函数
2019/07/02 Python
对Python中画图时候的线类型详解
2019/07/07 Python
python 牛顿法实现逻辑回归(Logistic Regression)
2020/10/15 Python
意大利一家专营包包和配饰的网上商店:Borse Last Minute
2019/08/26 全球购物
工商管理专业应届生求职信
2013/11/04 职场文书
装饰活动策划方案
2014/02/11 职场文书
2014年学校食堂工作总结
2014/11/25 职场文书
教师个人事迹材料
2014/12/17 职场文书
新员工入职欢迎词
2015/01/23 职场文书
《鸡兔同笼》教学反思
2016/02/19 职场文书
win11高清晰音频管理器在哪里?win11找不到高清晰音频管理器解决办法
2022/04/08 数码科技
MySQL创建管理子分区
2022/04/13 MySQL