2017-08-27 17 views
11

kullanarak Hive2 bağlantı kurulamıyor:kodunun altına olan Python kullanarak Hive2 bağlanırken ederken Python

File 
"C:\Users\vinbhask\AppData\Roaming\Python\Python36\site-packages\pyhs2-0.6.0-py3.6.egg\pyhs2\connections.py", 
line 7, in <module> 
    from cloudera.thrift_sasl import TSaslClientTransport ModuleNotFoundError: No module named 'cloudera' 

here ve here denediniz ama sorun değildi:

import pyhs2 

with pyhs2.connect(host='localhost', 
      port=10000, 
      authMechanism="PLAIN", 
      user='root', 
      password='test', 
      database='default') as conn: 
with conn.cursor() as cur: 
    #Show databases 
    print cur.getDatabases() 

    #Execute query 
    cur.execute("select * from table") 

    #Return column info from query 
    print cur.getSchema() 

    #Fetch table results 
    for i in cur.fetch(): 
     print i 

ben hata altına alıyorum çözüldü. Impyla kullanırken

bitarray0.8.1,certifi2017.7.27.1,chardet3.0.4,cm-api16.0.0,cx-Oracle6.0.1,future0.16.0,idna2.6,impyla0.14.0,JayDeBeApi1.1.1,JPype10.6.2,ply3.10,pure-sasl0.4.0,PyHive0.4.0,pyhs20.6.0,pyodbc4.0.17,requests2.18.4,sasl0.2.1,six1.10.0,teradata15.10.0.21,thrift0.10.0,thrift-sasl0.2.1,thriftpy0.3.9,urllib31.22 

Hata:

Traceback (most recent call last): 
File "C:\Users\xxxxx\AppData\Local\Programs\Python\Python36-32\Scripts\HiveConnTester4.py", line 1, in <module> 
from impala.dbapi import connect 
File "C:\Users\xxxxx\AppData\Local\Programs\Python\Python36-32\lib\site-packages\impala\dbapi.py", line 28, in <module> 
import impala.hiveserver2 as hs2 
File "C:\Users\xxxxx\AppData\Local\Programs\Python\Python36-32\lib\site-packages\impala\hiveserver2.py", line 33, in <module> 
from impala._thrift_api import (
File "C:\Users\xxxxx\AppData\Local\Programs\Python\Python36-32\lib\site-packages\impala\_thrift_api.py", line 74, in <module> 
include_dirs=[thrift_dir]) 
File "C:\Users\xxxxx\AppData\Local\Programs\Python\Python36-32\lib\site-packages\thriftpy\parser\__init__.py", line 30, in load 
include_dir=include_dir) 
File "C:\Users\xxxxx\AppData\Local\Programs\Python\Python36-32\lib\site-packages\thriftpy\parser\parser.py", line 496, in parse 
url_scheme)) 
thriftpy.parser.exc.ThriftParserError: ThriftPy does not support generating module with path in protocol 'c' 
+0

bu kadar çok insan PyHive hakkında aniden şikayet şaşırıyorum (şu anda bozuldu * [Ağustos 2017] *) ve PyHS2 (ki açıkça iş yapamaz. Bunun yerine ImPyla'yı deneyin. Cloudera tarafından korunuyor. Ve çalışıyor. –

+0

@SamsonScharfrichter: Impyla da denedim, bunun için hata günlüğünü güncelledim – Vinod

+0

PySpark'a ne dersiniz? –

cevap

1

thrift_sasl.py cStringIO çalışıyor Python 3.0'da artık mevcut değil İşte

bugüne kadar yüklü paketler olduğunu. Python 2 ile dene?

+0

python3 + – Vinod

+0

pysh2 artık kullanılmıyor. PyHive ile dener misin? – Xire

1

Thrift_sasl'nin yayınlanmamış bir sürümünü yüklemeniz gerekebilir. Eğer rahat bir öğrenme PySpark iseniz o zaman sadece Hive Metastore adreste işaret etmek kurulum için hive.metastore.uris özelliği gerekir,

pip install git+https://github.com/cloudera/thrift_sasl 
+0

@Vinod bu yardımcı oldu mu? – Tagar

+0

Bu hatayı alıyorum "Github.com bağlantı noktasına bağlanılamadı 443: Zaman aşımına uğradı" – Vinod

+0

Son hata, bir güvenlik duvarının ardında yatan ipuçlarını gösterir - bu nedenle 443 numaralı bağlantı noktasına erişme zaman aşımı yapıyorsunuz. http: 've tekrar deneyin - bağlantı noktası 80 açık olabilir. – Tagar

0

ve gitmek için hazırsınız: deneyin.

Bunu yapmanın en kolay yolu, hive-site.xml'u kümenizden dışa aktarmak, ardından spark-submit sırasında --files hive-site.xml'u geçmek olacaktır.

(ı YMMV yüzden, bağımsız Pyspark çalışan denemedim)