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中编写ORM框架的入门指引
Apr 29 Python
在Mac OS上使用mod_wsgi连接Python与Apache服务器
Dec 24 Python
使用pandas读取csv文件的指定列方法
Apr 21 Python
基于DataFrame筛选数据与loc的用法详解
May 18 Python
在Pycharm中将pyinstaller加入External Tools的方法
Jan 16 Python
python反编译学习之字节码详解
May 19 Python
Django组件cookie与session的具体使用
Jun 05 Python
通过PHP与Python代码对比的语法差异详解
Jul 10 Python
wxPython绘图模块wxPyPlot实现数据可视化
Nov 19 Python
使用python实现哈希表、字典、集合操作
Dec 22 Python
pytorch 限制GPU使用效率详解(计算效率)
Jun 27 Python
python unittest单元测试的步骤分析
Aug 02 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
为什么《星际争霸》是测试人工智能的理想战场
2019/12/03 星际争霸
php往mysql中批量插入数据实例教程
2018/12/12 PHP
经典的带阴影的可拖动的浮动层
2006/06/26 Javascript
showModelessDialog()使用详解
2006/09/21 Javascript
jquery购物车实时结算特效实现思路
2013/09/23 Javascript
JavaScript网页定位详解
2014/01/13 Javascript
javascript数组详解
2014/10/22 Javascript
jquery实现聚光灯效果的方法
2015/02/06 Javascript
Bootstrap轮播插件简单使用方法介绍
2016/06/21 Javascript
在Js页面通过POST传递参数跳转到新页面详解
2017/08/25 Javascript
Vue路由history模式解决404问题的几种方法
2018/09/29 Javascript
JavaScript之实现一个简单的Vue示例
2019/01/17 Javascript
vue路由拦截器和请求拦截器知识点总结
2019/11/08 Javascript
[42:35]2018DOTA2亚洲邀请赛3月30日 小组赛A组 VG VS OpTic
2018/03/31 DOTA
python利用hook技术破解https的实例代码
2013/03/25 Python
Python入门及进阶笔记 Python 内置函数小结
2014/08/09 Python
使用PDB简单调试Python程序简明指南
2015/04/25 Python
在Python程序中实现分布式进程的教程
2015/04/28 Python
python 3调用百度OCR API实现剪贴板文字识别
2018/09/04 Python
Python使用while循环花式打印乘法表
2019/01/28 Python
详解python中sort排序使用
2019/03/23 Python
PyQt5笔记之弹出窗口大全
2019/06/20 Python
33个Python爬虫项目实战(推荐)
2019/07/08 Python
Python 调用 Windows API COM 新法
2019/08/22 Python
python实现引用其他路径包里面的模块
2020/03/09 Python
使用CSS3的appearance属性改变元素的外观的方法
2015/12/12 HTML / CSS
浅谈three.js中的needsUpdate的应用
2012/11/12 HTML / CSS
狗狗玩具、零食和咀嚼物的月度送货服务:Super Chewer
2018/08/22 全球购物
湖南卫视在线视频媒体平台:芒果TV
2019/10/30 全球购物
几道数据库的面试题或笔试题
2014/05/31 面试题
轻化专业学生实习自我鉴定
2013/09/20 职场文书
分家协议书
2014/04/21 职场文书
马丁路德金演讲稿
2014/05/19 职场文书
筑梦中国心得体会
2016/01/18 职场文书
爱心捐款倡议书:点燃希望,传递温暖
2019/11/04 职场文书
Win11控制面板快捷键是什么?Win11打开控制面板的方法汇总
2022/07/07 数码科技