Maison > Article > développement back-end > Introduction détaillée à la méthode d'exploitation des données hbase en python
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"
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!