Maison > développement back-end > Tutoriel Python > Introduction détaillée à la méthode d'exploitation des données hbase en python

Introduction détaillée à la méthode d'exploitation des données hbase en python

高洛峰
Libérer: 2017-03-24 17:29:59
original
2819 Les gens l'ont consulté

Configurer thrift
Le package thrift utilisé par python
Le compilateur python que j'utilise personnellement est pycharm community edition. Dans les paramètres du projet, recherchez l'interpréteur de projet, Dans Sous le projet correspondant, recherchez le package, puis sélectionnez "+" pour l'ajouter, recherchez hbase-thrift (client Python pour l'interface HBase Thrift), puis installez le package.
Installez Thrift côté serveur.
Référez-vous au site officiel, et vous pouvez également l'installer sur votre machine locale pour une utilisation en terminal.
Démarrage de thrift
Vous pouvez également vous référer à la méthode d'installationExemple d'appel Python HBase
Tout d'abord, installez thrift
Téléchargez thrift, ici, j'utilise thrift -0.7.0-dev.tar.gz cette version
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
Ensuite, accédez au package source HBase et recherchez
src/main/resources/org/apache/hadoop/hbase/ thrift /
Execute
thrift –gen py Hbase.thrift
mv gen-py/hbase/ /usr/lib/python2.4/site-packages/ (peut être différent selon la version de python)
Exemple d'obtention de données 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"
Copier après la connexion

Ceux qui connaissent les bases de Python doivent savoir que le résultat est une liste et que result[0].columns.items() est une paire clé-valeur dict. Vous pouvez vérifier les informations pertinentes. Ou en sortant la variable, observez la valeur et le type de la variable.
Remarque : Dans le programme ci-dessus, transport.open() est lié. Après exécution, transport.close() doit être déconnecté
Actuellement, cela implique uniquement la lecture de données, et ce sera le cas. continuez à l'avenir. Mettez à jour les autres opérations de base de données.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal