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标准库urllib2的一些使用细节总结
Mar 16 Python
python创建和删除目录的方法
Apr 29 Python
使用Python脚本将文字转换为图片的实例分享
Aug 29 Python
Python中的函数作用域
May 07 Python
使用python来调用CAN通讯的DLL实现方法
Jul 03 Python
python实现从wind导入数据
Dec 03 Python
python系统指定文件的查找只输出目录下所有文件及文件夹
Jan 19 Python
Python实现屏幕录制功能的代码
Mar 02 Python
解决json中ensure_ascii=False的问题
Apr 03 Python
keras实现多GPU或指定GPU的使用介绍
Jun 17 Python
Django websocket原理及功能实现代码
Nov 14 Python
python可视化分析的实现(matplotlib、seaborn、ggplot2)
Feb 03 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 文章采集正则代码
2009/12/28 PHP
php在服务器执行exec命令失败的解决方法
2012/03/03 PHP
ThinkPHP实现事务回滚示例代码
2014/06/23 PHP
ThinkPHP模板判断输出Present标签用法详解
2014/06/30 PHP
跟我学Laravel之路由
2014/10/15 PHP
浅谈thinkphp的实例化模型
2015/01/04 PHP
javascript闭包的高级使用方法实例
2013/07/04 Javascript
jQuery里filter()函数与find()函数用法分析
2015/06/24 Javascript
JavaScript正则表达式匹配 div  style标签
2016/03/15 Javascript
AngularJS控制器详解及示例代码
2016/08/16 Javascript
浅析使用BootStrap TreeView插件实现灵活配置快递模板
2016/11/28 Javascript
jQuery回调方法使用示例
2017/06/26 jQuery
ajax+node+request爬取网络图片的实例(宅男福利)
2017/08/28 Javascript
微信小程序云开发(数据库)详解
2019/05/17 Javascript
利用js-cookie实现前端设置缓存数据定时失效
2019/06/18 Javascript
关于引入vue.js 文件的知识点总结
2020/01/28 Javascript
详解三种方式在React中解决绑定this的作用域问题并传参
2020/08/18 Javascript
[04:32]玩具屠夫中文语音节选
2020/08/23 DOTA
Python使用Selenium爬取淘宝异步加载的数据方法
2018/12/17 Python
Python实现的IP端口扫描工具类示例
2019/02/15 Python
关于pytorch多GPU训练实例与性能对比分析
2019/08/19 Python
Matplotlib scatter绘制散点图的方法实现
2020/01/02 Python
Python的pygame安装教程详解
2020/02/10 Python
python中if及if-else如何使用
2020/06/02 Python
协程Python 中实现多任务耗资源最小的方式
2020/10/19 Python
One.com挪威:北欧成长最快的网络托管公司
2016/11/19 全球购物
Luxplus瑞典:香水和美容护理折扣
2018/01/28 全球购物
eVitamins日本:在线购买折扣维生素、补品和草药
2019/04/04 全球购物
文案策划求职信
2014/04/14 职场文书
学校师德师风整改方案
2014/10/28 职场文书
写给同学的新学期寄语
2015/02/27 职场文书
2015年新农村建设工作总结
2015/05/22 职场文书
歌舞青春观后感
2015/06/10 职场文书
青涩记忆观后感
2015/06/18 职场文书
获奖感言怎么写
2015/07/31 职场文书
基于python实现银行管理系统
2021/04/20 Python