配置 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数据的方法介绍的详细内容,更多请关注Gxl网其它相关文章!

本条技术文章来源于互联网,如果无意侵犯您的权益请点击此处反馈版权投诉

本文系统来源:php中文网

TAG标签:python

python提取hbase数据_详解python操作hbase数据的方法介绍相关推荐

  1. python提取邮件附件_详解python实现读取邮件数据并下载附件的实例

    详解python实现读取邮件数据并下载附件的实例 实现结果图: 实现代码: #!/usr/bin/python2.7 # _*_ coding: utf-8 _*_ """ ...

  2. python获取mp3音频数据_详解python进行mp3格式判断 python怎么读取mp3文件

    python中哪个库有em算法 EM算法初稿2016-4-28 初始化三个一维的高斯分布 from numpy import * import numpy as np import matplotli ...

  3. python变量定义大全_详解python变量与数据类型

    这篇文章我们学习 Python 变量与数据类型 变量 变量来源于数学,是计算机语言中能储存计算结果或能表示值抽象概念,变量可以通过变量名访问.在 Python 中 变量命名规定,必须是大小写英文,数字 ...

  4. python装饰器由浅入深_详解Python装饰器由浅入深

    装饰器的功能在很多语言中都有,名字也不尽相同,其实它体现的是一种设计模式,强调的是开放封闭原则,更多的用于后期功能升级而不是编写新的代码.装饰器不光能装饰函数,也能装饰其他的对象,比如类,但通常,我们 ...

  5. python repair修复功能_详解Python修复遥感影像条带的两种方式

    GDAL修复Landsat ETM+影像条带 Landsat7 ETM+卫星影像由于卫星传感器故障,导致此后获取的影像出现了条带.如下图所示, 影像中均匀的布满条带. 使用GDAL修复影像条带的代码如 ...

  6. python中squeeze函数_详解pytorch中squeeze()和unsqueeze()函数介绍

    squeeze的用法主要就是对数据的维度进行压缩或者解压. 先看torch.squeeze() 这个函数主要对数据的维度进行压缩,去掉维数为1的的维度,比如是一行或者一列这种,一个一行三列(1,3)的 ...

  7. python中byte类型_详解python string类型 bytes类型 bytearray类型

    搜索热词 一.python3对文本和二进制数据做了区分.文本是Unicode编码,str类型,用于显示.二进制类型是bytes类型,用于存储和传输.bytes是byte的序列,而str是unicode ...

  8. python停止线程池_详解python中Threadpool线程池任务终止示例代码

    需求 加入我们需要处理一串个位数(0~9),奇数时需要循环打印它:偶数则等待对应时长并完成所有任务:0则是错误,但不需要终止任务,可以自定义一些处理. 关键点 定义func函数处理需求 callbac ...

  9. python模块搜索原则_详解python模块路径查找规则及定义

    在python中创建一个模块非常简单,只需要在当前目录下创建一个 .py文件即可,系统自动将其解析成模块,文件名就是模块名.很多我们源码时代的同学都认为在查找模块时优先使用当前目录下的自定义模块.其实 ...

最新文章

  1. python控制git版本库
  2. 地平线黄畅:软件2.0时代,数据驱动进化,算力将成为智能化的基石丨MEET2021...
  3. 基于线性调频(LFM)信号分数阶傅里叶变换的多径时延估计
  4. [css] 使用css如何设置背景虚化?
  5. python 保存文件 吃内存_孤荷凌寒自学python第三十七天python的文件与内存变量之间的序列化与反序列化...
  6. Nginx之配置后端服务器组
  7. Cesium专栏-裁剪效果(基于3dtiles模型,附源码下载)
  8. mysql bigint 转int_技术分享 | MySQL ?删库不跑路(建议收藏)
  9. 编程实现误差逆传播算法(BP算法)
  10. 一文搞懂什么是:种子轮、天使轮、ABC轮投资、IPO
  11. Verilog中{}的应用
  12. python字符串的内部函数_「Python」字符串操作内置函数
  13. skyeye linux qt,在ARM9上安装Linux,利用SkyEye模拟器及U-BOOT引导
  14. <span>的宽高到底是多少?
  15. Material Design icons图标的使用,npm下载及react+typescript引用方式import
  16. 从无到有做一个身份证识别app(环境搭配,AS安装)
  17. BZOJ 3698 XWW的难题
  18. source insight 4.0 配色方案及配置方法
  19. 外汇局:12月中国国际货物和服务贸易顺差2280亿元
  20. 2种常见的设备稼动率OEE监测方法

热门文章

  1. python画激活函数图像
  2. [arm驱动]linux内核中断编程
  3. 《异构信息网络挖掘: 原理和方法(1)》一第2章 基于排名的聚类
  4. EF5.x Code First 一对多关联条件查询,Contains,Any,All
  5. 帮助学生改善学习方法_学生应该如何花费时间改善自己的幸福
  6. Memory-Associated Differential Learning论文及代码解读
  7. Mybatis—注解开发
  8. leetcode792. 匹配子序列的单词数
  9. Command Magicks:如何使用控制台处理文件和字符串
  10. 多重线性回归 多元线性回归_了解多元线性回归