pyhiveを使用してPythonをハイブに接続したいと考えています。私は私のローカルで実行される、以下のpythonスクリプトを使用しています。Python Pyhiveモジュールは名前ハイブをインポートできません
#!/usr/bin/env python
# coding: utf-8
from pyhive import hive
from TCLIService.ttypes import TOperationState
def mysql_connect(host, port, username):
conn = hive.Connection(host=host, port=port, username=username)
return conn.cursor()
cursor = mysql_connect("localhost", 50070, "hduser")
cursor.execute("show databases")
print_log(cursor)
I場所に/usr/local/lib/python2.7/dist-packagesをpyhive本を持っているが、私は、次の出力
[email protected]:~/Desktop/Python/Automation$ ./pyhive_test.py
Traceback (most recent call last):
File "./pyhive_test.py", line 9, in <module>
cursor = mysql_connect("localhost", 50070, "hduser")
File "./pyhive_test.py", line 6, in mysql_connect
conn = hive.Connection(host=host, port=port, username=username)
File "/usr/local/lib/python2.7/dist-packages/pyhive/hive.py", line 131, in __init__
self._transport.open()
File "/usr/local/lib/python2.7/dist-packages/thrift_sasl/__init__.py", line 80, in open
status, payload = self._recv_sasl_message()
File "/usr/local/lib/python2.7/dist-packages/thrift_sasl/__init__.py", line 101, in _recv_sasl_message
payload = read_all_compat(self._trans, length)
File "/usr/local/lib/python2.7/dist-packages/thrift_sasl/six.py", line 31, in <lambda>
read_all_compat = lambda trans, sz: trans.readAll(sz)
File "/home/vaibhav/.local/lib/python2.7/site-packages/thrift/transport/TTransport.py", line 60, in readAll
chunk = self.read(sz - have)
File "/home/vaibhav/.local/lib/python2.7/site-packages/thrift/transport/TSocket.py", line 132, in read
message='TSocket read 0 bytes')
thrift.transport.TTransport.TTransportException: TSocket read 0 bytes
で終わる編集 1ファイルの名前がPyhiveからpyhive_testに変更されました
- pyhive.pyがディレクトリから削除されました
解決策が試み: 1.Thereはpython2.7とPython 3.4の2つのバージョンがインストールされていました。私は Python3.4をアンインストールしましたが、まだフォルダは /usr/local/lib /にあるようです。私は自分のPythonがインストールされている場所を確認するには、以下のコマンドの一部を実行し、パッケージが利用可能PYTHONPATH
に[email protected]:~$ which -a python
/usr/bin/python
[email protected]:~$ python -c "import sys, pprint; pprint.pprint(sys.path)"
['',
'/home/vaibhav',
'/usr/lib/python2.7/dist-packages',
'/usr/lib/python2.7',
'/usr/lib/python2.7/plat-x86_64-linux-gnu',
'/usr/lib/python2.7/lib-tk',
'/usr/lib/python2.7/lib-old',
'/usr/lib/python2.7/lib-dynload',
'/home/vaibhav/.local/lib/python2.7/site-packages',
'/usr/local/lib/python2.7/dist-packages',
'/usr/lib/python2.7/dist-packages/PILcompat',
'/usr/lib/python2.7/dist-packages/gtk-2.0',
'/usr/lib/pymodules/python2.7',
'/usr/lib/python2.7/dist-packages/ubuntu-sso-client']
2.リンクからの参照は、彼らが仮想環境には、それを使用するか、清潔なアナコンダを使用するように述べたhereを述べました。どのようにそれらを使用せず、既存の設定にどのように影響するかわかりません。
3.私はsudoを使用してPyhiveをインストールしました。このため、私はこのlinkに続いて許可を変更しましたが、同じ問題がありました。
私はまだあなたがあなたの質問を更新し、新しいエラーメッセージを追加してもらえ同じエラー – codaholic
を取得し、pyhive_testするためにそれを変更? '' pyhive_test.py'と同じディレクトリに '' pyhive.py''というファイルが存在しないことを確認しましたか? –
質問を更新しましたが、同じディレクトリに '' pyhive.py''ファイルがあります。削除してください。 –