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实现批量监控网站
Sep 09 Python
WINDOWS 同时安装 python2 python3 后 pip 错误的解决方法
Mar 16 Python
Python 专题六 局部变量、全局变量global、导入模块变量
Mar 20 Python
python字典DICT类型合并详解
Aug 17 Python
Python实现希尔排序算法的原理与用法实例分析
Nov 23 Python
VTK与Python实现机械臂三维模型可视化详解
Dec 13 Python
Numpy数组转置的两种实现方法
Apr 17 Python
使用Python通过win32 COM打开Excel并添加Sheet的方法
May 02 Python
使用Python写一个量化股票提醒系统
Aug 22 Python
浅述python2与python3的简单区别
Sep 19 Python
Python使用APScheduler实现定时任务过程解析
Sep 11 Python
Tensorflow 1.0之后模型文件、权重数值的读取方式
Feb 12 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/07/14 PHP
Laravel 5.3 学习笔记之 安装
2016/08/28 PHP
JS setCapture 区域外事件捕捉
2010/03/18 Javascript
jquery Mobile入门—多页面切换示例学习
2013/01/08 Javascript
动态标签 悬停效果 延迟加载示例代码
2013/11/21 Javascript
JS实现div居中示例
2014/04/17 Javascript
判断访客终端类型集锦
2015/06/05 Javascript
Nodejs中解决cluster模块的多进程如何共享数据问题
2016/11/10 NodeJs
AngularJs上传前预览图片的实例代码
2017/01/20 Javascript
详解如何将angular-ui的图片轮播组件封装成一个指令
2017/05/09 Javascript
JS实现按钮颜色切换效果
2020/09/05 Javascript
详解Vue 多级组件透传新方法provide/inject
2018/05/09 Javascript
angularjs使用div模拟textarea文本框的方法
2018/10/02 Javascript
详解js模板引擎art template数组渲染的方法
2018/10/09 Javascript
React如何解决fetch跨域请求时session失效问题
2018/11/02 Javascript
vue计算属性computed、事件、监听器watch的使用讲解
2019/01/21 Javascript
vue-cli3+typescript新建一个项目的思路分析
2019/08/06 Javascript
24行JavaScript代码实现Redux的方法实例
2019/11/17 Javascript
JavaScript canvas实现跟随鼠标事件
2020/02/10 Javascript
跟老齐学Python之print详解
2014/09/28 Python
Python使用Mechanize模块编写爬虫的要点解析
2016/03/31 Python
Python设计模式之享元模式原理与用法实例分析
2019/01/11 Python
使用python实现微信小程序自动签到功能
2020/04/27 Python
Django 解决开发自定义抛出异常的问题
2020/05/21 Python
追悼会主持词
2014/03/20 职场文书
2014年医学生毕业自我鉴定
2014/03/26 职场文书
银行竞聘演讲稿范文
2014/04/23 职场文书
资助贫困学生倡议书
2014/05/16 职场文书
诉讼财产保全担保书
2014/05/20 职场文书
销售队伍口号
2014/06/11 职场文书
质量整改报告范文
2014/11/08 职场文书
欢迎词范文
2015/01/27 职场文书
2015年女职工工作总结
2015/05/15 职场文书
MySQL索引知识的一些小妙招总结
2021/05/10 MySQL
vue基于Teleport实现Modal组件
2021/05/31 Vue.js
SQL语句中EXISTS的详细用法大全
2022/06/25 MySQL