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的线程来解决生产者消费问题的示例
Apr 02 Python
python实现在windows下操作word的方法
Apr 28 Python
详解Python编程中基本的数学计算使用
Feb 04 Python
Python解析json文件相关知识学习
Mar 01 Python
Python的collections模块中namedtuple结构使用示例
Jul 07 Python
Python中几种导入模块的方式总结
Apr 27 Python
浅谈python requests 的put, post 请求参数的问题
Jan 02 Python
Python3利用Dlib实现摄像头实时人脸检测和平铺显示示例
Feb 21 Python
Python写一个基于MD5的文件监听程序
Mar 11 Python
python实现批量处理将图片粘贴到另一张图片上并保存
Dec 12 Python
django 外键创建注意事项说明
May 20 Python
python如何实现递归转非递归
Feb 25 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短域名转换为实际域名函数
2011/01/17 PHP
PHP计算指定日期所在周的开始和结束日期的方法
2015/03/24 PHP
Zend Framework缓存Cache用法简单实例
2016/03/19 PHP
Laravel框架使用Seeder实现自动填充数据功能
2018/06/13 PHP
用JTrackBar实现的模拟苹果风格的滚动条
2007/08/06 Javascript
引入JS文件IE6报语法错误或缺少对象问题的解决方法
2014/01/09 Javascript
JavaScript学习心得之概述
2015/01/20 Javascript
ECMAScript6中Map/WeakMap详解
2015/06/12 Javascript
详解js私有作用域中创建特权方法
2016/01/25 Javascript
详解webpack4升级指南以及从webpack3.x迁移
2018/06/12 Javascript
vue.js 2.*项目环境搭建、运行、打包发布的详细步骤
2019/05/01 Javascript
解决layer.confirm选择完之后消息框不消失的问题
2019/09/16 Javascript
JS运算符简单用法示例
2020/01/19 Javascript
微信小程序实现树莓派(raspberry pi)小车控制
2020/02/12 Javascript
Element图表初始大小及窗口自适应实现
2020/07/10 Javascript
[05:34]2014DOTA2国际邀请赛中国区预选赛精彩TOPPLAY第二弹
2014/06/25 DOTA
编写Python脚本来获取mp3文件tag信息的教程
2015/05/04 Python
深入解析Python设计模式编程中建造者模式的使用
2016/03/02 Python
python获取外网IP并发邮件的实现方法
2017/10/01 Python
python re模块的高级用法详解
2018/06/06 Python
在python里面运用多继承方法详解
2019/07/01 Python
Python何时应该使用Lambda函数
2019/07/02 Python
在Pytorch中使用样本权重(sample_weight)的正确方法
2019/08/17 Python
python next()和iter()函数原理解析
2020/02/07 Python
Python + selenium + crontab实现每日定时自动打卡功能
2020/03/31 Python
使用AJAX和Django获取数据的方法实例
2020/10/25 Python
用CSS3绘制三角形的简单方法
2015/07/17 HTML / CSS
HTML5中判断用户是否正在浏览页面的方法
2014/05/03 HTML / CSS
德国古洛迷亚百货官网:GALERIA Kaufhof
2017/06/20 全球购物
Mytheresa中国官网:德国时尚奢侈品商城
2017/08/04 全球购物
Europcar意大利:汽车租赁
2019/07/07 全球购物
致长跑运动员广播稿
2014/01/31 职场文书
电子商务个人职业生涯规划范文
2014/02/12 职场文书
2014年青年志愿者工作总结
2014/12/09 职场文书
中英文求职信范文
2015/03/19 职场文书
详解MySql中InnoDB存储引擎中的各种锁
2022/02/12 MySQL