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 04 Python
Python实现随机选择元素功能
Sep 14 Python
django上传图片并生成缩略图方法示例
Dec 11 Python
Python判断两个list是否是父子集关系的实例
May 04 Python
python实现简易动态时钟
Nov 19 Python
Python批量生成特定尺寸图片及图画任意文字的实例
Jan 30 Python
python opencv捕获摄像头并显示内容的实现
Jul 11 Python
TensorFlow实现简单的CNN的方法
Jul 18 Python
如何基于pythonnet调用halcon脚本
Jan 20 Python
在Python IDLE 下调用anaconda中的库教程
Mar 09 Python
Python基于百度AI实现OCR文字识别
Apr 02 Python
python实现图像高斯金字塔的示例代码
Dec 11 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自动反斜杠的函数代码
2010/01/05 PHP
PHP编程最快明白(第一讲 软件环境和准备工作)
2010/10/25 PHP
yii框架中的Url生产问题小结
2012/01/16 PHP
wordpress安装过程中遇到中文乱码的处理方法
2015/04/21 PHP
使用php完成常见的文件上传功能(推荐)
2017/01/13 PHP
php使用goto实现自动重启swoole、reactphp、workerman服务的代码
2020/04/13 PHP
js实现拖拽 闭包函数详细介绍
2012/11/25 Javascript
javascript客户端遍历控件与获取父容器对象示例代码
2014/01/06 Javascript
JavaScript框架(iframe)操作总结
2014/04/16 Javascript
jQuery幻灯片带缩略图轮播效果代码分享
2015/08/17 Javascript
微信企业号开发之微信考勤百度地图定位
2015/09/11 Javascript
javascript结合Flexbox简单实现滑动拼图游戏
2016/02/18 Javascript
简单的jQuery拖拽排序效果的实现(增强动态)
2017/02/09 Javascript
JS 插件dropload下拉刷新、上拉加载使用小结
2017/04/13 Javascript
深入浅析js原型链和vue构造函数
2018/10/25 Javascript
Vue 自定义指令功能完整实例
2019/09/17 Javascript
JavaScript实现Tab选项卡切换
2020/02/13 Javascript
Node 模块原理与用法详解
2020/05/13 Javascript
[02:19]2014DOTA2国际邀请赛 专访820少年们一起去追梦吧
2014/07/14 DOTA
[03:02]辉夜杯主赛事第二日 每日之星
2015/12/27 DOTA
python创建线程示例
2014/05/06 Python
python网络编程学习笔记(三):socket网络服务器
2014/06/09 Python
Python的内存泄漏及gc模块的使用分析
2014/07/16 Python
Python中模块与包有相同名字的处理方法
2017/05/05 Python
Jupyter notebook远程访问服务器的方法
2018/05/24 Python
Python csv模块使用方法代码实例
2019/08/29 Python
Python3 合并二叉树的实现
2019/09/30 Python
pytorch绘制并显示loss曲线和acc曲线,LeNet5识别图像准确率
2020/01/02 Python
html5唤起app的方法
2017/11/30 HTML / CSS
英国最大的女性服装零售商:Dorothy Perkins
2017/03/30 全球购物
韩国美国时尚服装和美容在线全球市场:KOODING
2018/11/07 全球购物
linux系统都有哪些运行级别
2012/04/15 面试题
Linux管理员面试题 Linux admin interview questions
2016/07/08 面试题
后勤个人工作总结
2015/02/28 职场文书
观后感的写法
2015/06/19 职场文书
python绘制箱型图
2021/04/27 Python