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 实现文件的递归拷贝实现代码
Aug 02 Python
qpython3 读取安卓lastpass Cookies
Jun 19 Python
浅谈python类属性的访问、设置和删除方法
Jul 25 Python
pycharm安装图文教程
May 02 Python
Python实现的圆形绘制(画圆)示例
Jan 31 Python
django之跨表查询及添加记录的示例代码
Oct 16 Python
python opencv 读取本地视频文件 修改ffmpeg的方法
Jan 26 Python
Python实现带下标索引的遍历操作示例
May 30 Python
简单介绍一下pyinstaller打包以及安全性的实现
Jun 02 Python
python 实现汉诺塔游戏
Nov 28 Python
用Python将GIF动图分解成多张静态图片
Jun 11 Python
python文件与路径操作神器 pathlib
Apr 01 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脚本的10个技巧(8)
2006/10/09 PHP
adodb与adodb_lite之比较
2006/12/31 PHP
php文件缓存类汇总
2014/11/21 PHP
PHP的全局错误处理详解
2016/04/25 PHP
jQuery EasyUI API 中文文档 - ComboGrid 组合表格
2011/10/13 Javascript
用js实现控件的隐藏及style.visibility的使用
2013/06/14 Javascript
页面js遇到乱码问题的解决方法是和无法转码的情况
2014/04/30 Javascript
JQuery中$(document)是什么意思有什么作用
2014/07/21 Javascript
javascript实现全角与半角字符的转换
2015/01/07 Javascript
JavaScript事件委托技术实例分析
2015/02/06 Javascript
jQuery增加和删除表格项目及实现表格项目排序的方法
2016/05/30 Javascript
jQuery ajax中使用confirm,确认是否删除的简单实例
2016/06/17 Javascript
详解Angular2中的编程对象Observable
2016/09/17 Javascript
jQuery轮播图实例详解
2018/08/15 jQuery
layui前端框架之table表数据的刷新方法
2018/08/17 Javascript
js使用swiper实现层叠轮播效果实例代码
2018/12/12 Javascript
layui监听工具栏的实例(操作列表按钮)
2019/09/10 Javascript
vue.js的状态管理vuex中store的使用详解
2019/11/08 Javascript
微信小程序实现多选框全选与反全选及购物车中删除选中的商品功能
2019/12/17 Javascript
js实现多个标题吸顶效果
2020/01/08 Javascript
[04:44]DOTA2英雄梦之声_第12期_矮人直升机
2014/06/21 DOTA
django rest framework之请求与响应(详解)
2017/11/06 Python
详解Python给照片换底色(蓝底换红底)
2019/03/22 Python
python从zip中删除指定后缀文件(推荐)
2019/12/05 Python
使用pickle存储数据dump 和 load实例讲解
2019/12/30 Python
Python unittest discover批量执行代码实例
2020/09/08 Python
python mongo 向数据中的数组类型新增数据操作
2020/12/05 Python
Java中实现多态的机制是什么?
2014/12/07 面试题
房屋改造计划书
2014/01/10 职场文书
小学生安全责任书
2014/07/25 职场文书
幼儿园开学温馨提示
2015/07/15 职场文书
小学信息技术教学反思
2016/02/16 职场文书
大学生暑期实践报告之企业经营管理
2019/08/08 职场文书
JS继承最简单的理解方式
2021/03/31 Javascript
Python爬虫实战之爬取携程评论
2021/06/02 Python
oracle索引总结
2021/09/25 Oracle