Как я могу подключиться к presto pyhive?

Я хочу подключить presto с помощью pyhive в zeppelin

теперь я следую за https://github.com/dropbox/PyHive

Использую функцию подключения и корректирую параметры.

%python
from pyhive import presto
cursor =  presto.connect(host='localhost',
                port=10000,
                username='id:password').cursor()
cursor.execute('SELECT * FROM table LIMIT 10')

Но это не работает.

Traceback (most recent call last):
  File "/tmp/zeppelin_python-557261260901431465.py", line 278, in <module>
    raise Exception(traceback.format_exc())
Exception: Traceback (most recent call last):
  File "/tmp/zeppelin_python-557261260901431465.py", line 266, in <module>
    exec(code)
  File "<stdin>", line 5, in <module>
  File "/usr/lib/python2.7/dist-packages/pyhive/presto.py", line 206, in execute
    self._process_response(response)
  File "/usr/lib/python2.7/dist-packages/pyhive/presto.py", line 263, in _process_response
    response_json = response.json()
  File "/usr/lib/python2.7/dist-packages/requests/models.py", line 650, in json
    return json.loads(self.content.decode(encoding), **kwargs)
  File "/usr/lib64/python2.7/encodings/utf_32_le.py", line 11, in decode
    return codecs.utf_32_le_decode(input, errors, True)
UnicodeDecodeError: 'utf32' codec can't decode bytes in position 4-7: code point not in range(0x110000)

как я могу это исправить?


person lil    schedule 19.09.2017    source источник


Ответы (1)


Вы пробовали разделить логин и пароль? presto.connect(host='xxx', port=xxx, username='xxx', password='xxx') работал у меня.

person user8637555    schedule 20.09.2017
comment
я могу найти ответ! я неверный порт .. username = 'id: password' правильный! ~ - person lil; 20.09.2017
comment
Проблема здесь в кодировке символов - где-то у вас установлен utf32 little endian, и возникает проблема с декодированием возвращаемых данных. Попробуйте установить здесь utf-8 или что-нибудь еще. - person Tim; 07.05.2019