Подключить python к Hive

Хочу подключить улей от питона. для целей тестирования я создал ниже скрипт в Pycharm и пытаюсь подключить улей

from pyhive import  hive
import sys
import pandas as pd
import ssl
import thrift_sasl
con=hive.Connection(host = "ip_addrs",port=10000,username = "hiveuser_test", auth='NOSASL')
cursor = con.cursor()
print(cursor.fetchall())
print(con)

при запуске кода появляется следующая ошибка:

C:\Users\username_dim\AppData\Local\Programs\Python\Python36-32\python.exe C:/Users/username_dim/PycharmProjects/untitled1/Test
Traceback (most recent call last):
  File "C:/Users/username_dim/PycharmProjects/untitled1/Test", line 11, in <module>
    con=hive.Connection(host = "ip_addres",port=10000,username = "hiveuser_test", auth='NOSASL')
  File "C:\Users\username_dim\AppData\Local\Programs\Python\Python36-32\lib\site-packages\pyhive\hive.py", line 198, in __init__
    response = self._client.OpenSession(open_session_req)
  File "C:\Users\username_dim\AppData\Local\Programs\Python\Python36-32\lib\site-packages\TCLIService\TCLIService.py", line 187, in OpenSession
    return self.recv_OpenSession()
  File "C:\Users\username_dim\AppData\Local\Programs\Python\Python36-32\lib\site-packages\TCLIService\TCLIService.py", line 199, in recv_OpenSession
    (fname, mtype, rseqid) = iprot.readMessageBegin()
  File "C:\Users\username_dim\AppData\Local\Programs\Python\Python36-32\lib\site-packages\thrift\protocol\TBinaryProtocol.py", line 148, in readMessageBegin
    name = self.trans.readAll(sz)
  File "C:\Users\username_dim\AppData\Local\Programs\Python\Python36-32\lib\site-packages\thrift\transport\TTransport.py", line 60, in readAll
    chunk = self.read(sz - have)
  File "C:\Users\username_dim\AppData\Local\Programs\Python\Python36-32\lib\site-packages\thrift\transport\TTransport.py", line 162, in read
    self.__rbuf = BufferIO(self.__trans.read(max(sz, self.__rbuf_size)))
  File "C:\Users\username_dim\AppData\Local\Programs\Python\Python36-32\lib\site-packages\thrift\transport\TSocket.py", line 132, in read
    message='TSocket read 0 bytes')
thrift.transport.TTransport.TTransportException: TSocket read 0 bytes
Process finished with exit code 1
Core-site.xml

Раньше настраивал hiveserver2

<property>
  <name>hadoop.proxyuser.sqoop2.hosts</name>
  <value>*</value>
</property>
<property>
     <name>hadoop.proxyuser.sqoop2.groups</name>
     <value>*</value>
 </property>
<property>
  <name>hadoop.proxyuser.hiveuser_test.hosts</name>
  <value>*</value>
 </property>
<property>
      <name>hadoop.proxyuser.hiveuser_test.groups</name>
      <value>*</value>
</property>
<property>
     <name>hadoop.proxyuser.server.hosts</name>
     <value>*</value>
</property>
    <property>
      <name>hadoop.proxyuser.server.groups</name>
      <value>*</value>
  </property

> Blockquote

Не могли бы вы помочь мне исправить ошибку

попытка использовать import pyhs2 ниже ошибка ModuleNotFoundError: нет модуля с именем cloudera

ram 30.10.2018 19:25
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
1
1
5 240
1

Ответы 1

cursor.execute ("ВЫБРАТЬ ....") отсутствует. Вот почему ваше сберегательное соединение не может читать никакие данные thrift.transport.TTransport.TTransportException: TSocket read 0 bytes

Измененный код ниже.

from pyhive import  hive
import sys
import pandas as pd
import ssl
import thrift_sasl
con=hive.Connection(host = "ip_addrs",port=10000,username = "hiveuser_test", auth='NOSASL')
cursor = con.cursor()
select_stmt = 'SELECT * FROM t1 LIMIT 10'
cursor.execute(select_stmt)
print(cursor.fetchall())
print(con)

Примечание: замените эту строку в соответствии с вашими потребностями. select_stmt = 'ВЫБРАТЬ * ИЗ ОГРАНИЧЕНИЯ 10 t1'

Продана проблема :) Спасибо за поддержку

ram 31.10.2018 07:31

Другие вопросы по теме