亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

python 調(diào)用HBase的簡單實例

 更新時間:2016年12月18日 12:09:23   投稿:jingxian  
下面小編就為大家?guī)硪黄猵ython 調(diào)用HBase的簡單實例。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

新來的一個工程師不懂HBase,java不熟,python還行,我建議他那可以考慮用HBase的thrift調(diào)用,完成目前的工作。

首先,安裝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/

執(zhí)行

thrift --gen py Hbase.thrift
mv gen-py/hbase/ /usr/lib/python2.4/site-packages/ (根據(jù)python版本可能有不同)

我這里寫了些調(diào)用的腳本,供大家參考

from unittest import TestCase, main
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
class HBaseTester:

  def __init__(self, netloc, port, table="staftesttable"):
    self.tableName = table

    self.transport = TTransport.TBufferedTransport(
      TSocket.TSocket(netloc, port))
    self.protocol = TBinaryProtocol.TBinaryProtocol(self.transport)
    self.client = Hbase.Client(self.protocol)
    self.transport.open()

    tables = self.client.getTableNames()
    if self.tableName not in tables:
      self.__createTable()

  def __del__(self):
    self.transport.close()

  def __createTable(self):
    name = ColumnDescriptor(name='name')
    foo = ColumnDescriptor(name='foo')

    self.client.createTable(self.tableName,
                [name,foo])
  
  def put(self,key,name,foo):
    name = Mutation(column="name:v", value=name)
    foo = Mutation(column="foo:v",value=foo)
    
    self.client.mutateRow(self.tablename,key,[name,foo])
  
  def scanner(self,column):
    scanner = client.scannerOpen(self.tablename,"",[column])
				r = client.scannerGet(scanner)
				result= []
    while r:
     print r[0]
     result.append(r[0])
     r = client.scannerGet(scanner)
    print "Scanner finished"
    return result
   
  
    
    
    
     
class TestHBaseTester(TestCase):
  
  def setUp(self):
    self.writer = HBaseTester("localhost", 9090)

  def tearDown(self):
    name = self.writer.tableName
    client = self.writer.client
    client.disableTable(name)
    client.deleteTable(name)


  def testCreate(self):
    tableName = self.writer.tableName
    client = self.writer.client
    self.assertTrue(self.writer.tableName in client.getTableNames())
    columns =['name:','foo:']
    for i in client.getColumnDescriptors(tableName):
      self.assertTrue(i in columns)
      
  def testPut(self):
    self.writer.put("r1","n1","f1")
    self.writer.put("r2","n2","f2")
    self.writer.put("r3","n3","")
    self.writer.scanner("name:") 
    
if __name__ == "__main__":
  main()

以上這篇python 調(diào)用HBase的簡單實例就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • 基于matplotlib中ion()和ioff()的使用詳解

    基于matplotlib中ion()和ioff()的使用詳解

    這篇文章主要介紹了基于matplotlib中ion()和ioff()的使用詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-06-06
  • python 實現(xiàn)客戶端與服務端的通信

    python 實現(xiàn)客戶端與服務端的通信

    這篇文章主要介紹了python 實現(xiàn)客戶端與服務端的通信的方法,幫助大家更好的理解和使用python,感興趣的朋友可以了解下
    2020-12-12
  • Python編程進階代碼邏輯分離指南

    Python編程進階代碼邏輯分離指南

    在?Python?編程中,適當?shù)拇a邏輯分離可以幫助降低復雜度、提高可讀性,減少大量的?if-else?結構,本文將深入探討如何使用不同方法來改進代碼結構,降低對?if-else?結構的依賴
    2023-12-12
  • Python 字符串的有關知識詳解

    Python 字符串的有關知識詳解

    這篇文章主要為大家介紹了Python的字符串,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助,希望能夠給你帶來幫助
    2021-11-11
  • Python集合魔法解鎖數(shù)據(jù)去重技巧應用實例

    Python集合魔法解鎖數(shù)據(jù)去重技巧應用實例

    這篇文章主要為大家介紹了Python集合魔法解鎖數(shù)據(jù)去重技巧應用實例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-11-11
  • Python-re中search()函數(shù)的用法詳解(查找ip)

    Python-re中search()函數(shù)的用法詳解(查找ip)

    這篇文章主要介紹了Python-re中search()函數(shù)的用法-----查找ip,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-03-03
  • Python中使用zip函數(shù)的七重境界解析

    Python中使用zip函數(shù)的七重境界解析

    這篇文章主要介紹了Python中使用zip函數(shù)的七重境界,重點介紹了Python中功能強大的zip 函數(shù)的多種用法,并給出了相應的代碼示例,需要的朋友可以參考下
    2022-12-12
  • OpenCV-Python實現(xiàn)凸包的獲取

    OpenCV-Python實現(xiàn)凸包的獲取

    凸包是一個計算幾何中的概念,在圖像處理過程中,我們常常需要尋找圖像中包圍某個物體的凸包,本文就使用OpenCV實現(xiàn),感興趣的可以了解一下
    2021-06-06
  • Pandas?Matplotlib保存圖形時坐標軸標簽太長導致顯示不全問題的解決

    Pandas?Matplotlib保存圖形時坐標軸標簽太長導致顯示不全問題的解決

    在使用matplotlib作圖的時候,有的時候會遇到畫圖時顯示不全和圖片保存時不完整的問題,這篇文章主要給大家介紹了關于Pandas?Matplotlib保存圖形時坐標軸標簽太長導致顯示不全問題的解決方法,需要的朋友可以參考下
    2022-06-06
  • pytorch 同步機制的實現(xiàn)

    pytorch 同步機制的實現(xiàn)

    在PyTorch中,當多個算子和內(nèi)核被并行執(zhí)行時,PyTorch 通過 CUDA 的流和事件機制來管理并發(fā)和同步,本文就來介紹一下pytorch 同步機制,具有一定的參考價值,感興趣的可以了解一下
    2024-09-09

最新評論