>  기사  >  백엔드 개발  >  Python에서 hbase 데이터를 조작하는 방법에 대한 자세한 소개

Python에서 hbase 데이터를 조작하는 방법에 대한 자세한 소개

高洛峰
高洛峰원래의
2017-03-24 17:29:592742검색

thrift 구성
Python에서 사용하는 패키지 thrift
제가 개인적으로 사용하는 Python 컴파일러는 pycharm 커뮤니티 에디션입니다. 프로젝트 설정에서 프로젝트 인터프리터를 찾으세요. 해당 프로젝트 아래에서 패키지를 찾은 후 "+"를 선택하여 추가하고 hbase-thrift(HBase Thrift 인터페이스용 Python 클라이언트)를 검색한 후 패키지를 설치합니다.
서버측 Thrift를 설치합니다.
공식 홈페이지를 참고하시고, 로컬 컴퓨터에 설치하여 터미널 사용도 가능합니다.
thrift 시작하기
설치 방법도 참조할 수 있습니다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/ (파이썬 버전에 따라 다를 수 있음)
데이터 가져오기 예제 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[0].columns.items()가 dict 키-값 쌍이라는 것을 알아야 합니다. 관련정보를 확인하실 수 있습니다. 또는 변수를 출력하여 변수의 값과 유형을 관찰합니다.
참고: 위 프로그램에서는 Transport.open()이 연결되어 있습니다. 실행 후에는 Transport.close()의 연결을 끊어야 합니다.
현재는 데이터 읽기만 포함됩니다. 앞으로도 계속해서 다른 dbase 작업을 업데이트하세요.

위 내용은 Python에서 hbase 데이터를 조작하는 방법에 대한 자세한 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.