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解析xml成对应的html示例分享
Apr 02 Python
Python实现文件按照日期命名的方法
Jul 09 Python
python cx_Oracle的基础使用方法(连接和增删改查)
Nov 19 Python
Python实现的质因式分解算法示例
May 03 Python
Pandas 同元素多列去重的实例
Jul 03 Python
Python二进制串转换为通用字符串的方法
Jul 23 Python
Python3.6.2调用ffmpeg的方法
Jan 10 Python
Python告诉你木马程序的键盘记录原理
Feb 02 Python
python自动化测试之DDT数据驱动的实现代码
Jul 23 Python
关于python 的legend图例,参数使用说明
Apr 17 Python
win10下python3.8的PIL库安装过程
Jun 08 Python
PyTorch预训练Bert模型的示例
Nov 17 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注释和去除空格函数分享
2014/03/13 PHP
详解JavaScript中的表单验证
2015/06/16 Javascript
chrome调试javascript详解
2015/10/21 Javascript
JS实现禁止高频率连续点击的方法【基于ES6语法】
2017/04/25 Javascript
详解AngularJS用Interceptors来统一处理HTTP请求和响应
2017/06/08 Javascript
JavaScript初学者必看“new”
2017/06/12 Javascript
vue通过watch对input做字数限定的方法
2017/07/13 Javascript
vue一个页面实现音乐播放器的示例
2018/02/06 Javascript
Node批量爬取头条视频并保存方法
2018/09/20 Javascript
微信小程序收货地址API兼容低版本解决方法
2019/05/18 Javascript
微信小程序蓝牙连接小票打印机实例代码详解
2019/06/03 Javascript
Vue实现图片与文字混输效果
2019/12/04 Javascript
JavaScript隐式类型转换代码实例
2020/05/29 Javascript
[01:01]2020完美高校联赛(秋)西安落幕
2021/03/11 DOTA
python实现sublime3的less编译插件示例
2014/04/27 Python
Python用模块pytz来转换时区
2016/08/19 Python
分析python切片原理和方法
2017/12/19 Python
儿童python练习实例
2018/05/27 Python
Python实现的统计文章单词次数功能示例
2019/07/08 Python
python自动化UI工具发送QQ消息的实例
2019/08/27 Python
matlab灰度图像调整及imadjust函数的用法详解
2020/02/27 Python
接口自动化多层嵌套json数据处理代码实例
2020/11/20 Python
css实例教程 一款纯css3实现的超炫动画背画特效
2014/11/05 HTML / CSS
突破canvas语法限制 让他支持链式语法
2012/12/24 HTML / CSS
html5+css3进度条倒计时动画特效代码【推荐】
2016/03/08 HTML / CSS
世界上最大的专业美容用品零售商:Sally Beauty
2017/07/02 全球购物
企业管理部经理岗位职责
2013/12/24 职场文书
业绩考核岗位职责
2014/02/01 职场文书
班级安全教育实施方案
2014/02/23 职场文书
感恩老师演讲稿600字
2014/08/28 职场文书
2014机关干部学习“焦裕禄精神”思想汇报
2014/09/19 职场文书
论文答辩开场白大全
2015/05/27 职场文书
2015年高中生国庆节演讲稿
2015/07/30 职场文书
小学新课改心得体会
2016/01/22 职场文书
2016年企业安全生产月活动总结
2016/04/06 职场文书
创业计划书之服装
2019/10/07 职场文书