Ich habe einige Daten in HDFS, ich muss auf diese Daten mit Python zugreifen, kann mir jemand sagen, wie Daten aus dem Bienenstock mit Python zugegriffen wird?Zugriff auf Hive-Daten mit Python
Antwort
Sie können mit Bienenstock-Bibliothek für den Zugriff Struktur von Python, für die Sie hive Klasse von hive Import importieren möchten ThriftHive
Unter dem Beispiel
import sys
from hive import ThriftHive
from hive.ttypes import HiveServerException
from thrift import Thrift
from thrift.transport import TSocket
from thrift.transport import TTransport
from thrift.protocol import TBinaryProtocol
try:
transport = TSocket.TSocket('localhost', 10000)
transport = TTransport.TBufferedTransport(transport)
protocol = TBinaryProtocol.TBinaryProtocol(transport)
client = ThriftHive.Client(protocol)
transport.open()
client.execute("CREATE TABLE r(a STRING, b INT, c DOUBLE)")
client.execute("LOAD TABLE LOCAL INPATH '/path' INTO TABLE r")
client.execute("SELECT * FROM r")
while (1):
row = client.fetchOne()
if (row == None):
break
print row
client.execute("SELECT * FROM r")
print client.fetchAll()
transport.close()
except Thrift.TException, tx:
print '%s' % (tx.message)
Sie benötigen zur Installation werden Diese Bibliotheken:
pip install sasl
pip install thrift
pip install thrift-sasl
pip install PyHive
Wenn Sie unter Linux sind, müssen Sie möglicherweise SASL vor dem Ausführen separat installieren das oben genannte. Installieren Sie das Paket libsasl2-dev
mit apt-get
oder yum
oder was auch immer Paketmanager. Für Windows gibt es einige Optionen on GNU.org.
from pyhive import hive
conn = hive.Connection(host="YOUR_HIVE_HOST", port=PORT, username="YOU")
Jetzt, wo Sie den Bienenstock-Verbindung haben, können Sie: Auf einem Mac SASL zur Verfügung stehen sollten, wenn Sie Xcode Entwickler-Tools (xcode-select --install
)
Nach der Installation installiert haben, können Sie einen Bienenstock Abfrage wie folgt ausführen habe Optionen wie man es benutzt. Sie können nur straight-up-Abfrage:
cursor = conn.cursor()
cursor.execute("SELECT cool_stuff FROM hive_table")
for result in cursor.fetchall():
use_result(result)
... oder die Verbindung zu verwenden, um eine Pandas Datenrahmen zu machen:
import pandas as pd
df = pd.read_sql("SELECT cool_stuff FROM hive_table", conn)
"SASL konnte nicht gestartet werden:% s"% self.sasl.getError() "- unter Windows 2008 R2, Python 3.6 Wie löst man dieses Problem? –
- 1. Zugriff auf WebDav/Apache mit Python steuern
- 2. Zugriff auf Gnome-Konfigurationsinformationen mit Python
- 3. Zugriff auf PHP Ausgabepuffer Inhalt Python mit
- 4. Zugriff auf OrientDB von Python
- 5. Python: Zugriff auf Array-Elemente
- 6. Zugriff auf Ressourcendateien in Python
- 7. Zugriff auf Anfrage Header auf Django/Python
- 8. Python Selen Zugriff auf Cookies nicht möglich
- 9. Zugriff auf Microsoft-Automatisierungsobjekte aus Python
- 10. Python-Skript-Zugriff auf os-Funktionen beschränken
- 11. Zugriff auf dynamisch-Named-Verzeichnis in Python
- 12. Python/Keras - Zugriff auf ModelCheckpoint Callback
- 13. Zugriff auf Windows on_screen Tastaturzubehör über Python
- 14. Python Anywhere-Zugriff auf MySQL-Datenbank verweigert
- 15. Kann Python berkeleydb Zugriff auf osx
- 16. Python Zugriff auf verschachtelte JSON-Daten
- 17. Zugriff auf Wörterbuch des Wörterbuchs in Python
- 18. Zugriff auf Google Tabellenkalkulation über Python
- 19. Zugriff auf Yahoo Enterprise Web Services mit Python SOAPpy?
- 20. Zugriff auf Python-dict-Werte mit den Schlüsselanfangszeichen
- 21. Zugriff auf MATLAB-Daten in Python mit einem verketteten Dateinamen
- 22. Zugriff auf das XMLNS-Attribut mit Python-Elementree?
- 23. Zugriff auf Python-Wörterbuch, dessen Schlüssel Tupel mit einem Platzhalter
- 24. Zugriff auf Elemente mit Offsets in Python für .. in Schleifen
- 25. Zugriff auf Dateien in einer Python-Eizelle?
- 26. Zugriff von extern auf Python-Entwicklungsserver
- 27. Python - Zugriff auf den Temp-Ordner
- 28. Zugriff auf eine MySQL-Datenbank von Python
- 29. Zugriff auf den relativen Pfad in Python
- 30. Zugriff auf Reuters-Daten in Python
plz mir sagen, wie Bienenstock Bibliothek zu bekommen? –
Sie können diese Bibliothek von $ HIVE_HOME/lib/py/* kopieren Sie diesen Inhalt in den PY-Ordner und Vergangenheit in Python-Bibliothek – Sreejith
@Sreejith Ich habe kein Problem beim Importieren dieser Python-Bibliotheken, aber der Code hängt nach dem Ausführen von Hive-Befehl. Und es stellte sich heraus, dass es ein allgemeines Problem war. Hat sich Ihr Code mit Hiveserver1 oder Hiveserver2 verbunden? https://groups.google.com/a/cloudera.org/forum/#!topic/cdh-user/lCSuh6vLmHM –