Как загрузить данные в Blaze из Hive2
Все,
Я пытаюсь загрузить данные в блэйс с благотворительного сервера hive2. Я хотел бы сделать некоторый анализ, подобный тому, что размещено здесь. Вот мой текущий процесс.
import blaze as bz
import sqlalchemy
import impala
conn = connect(host='myhost.url.com', port=10000, database='mydb', user='hive', auth_mechanism='PLAIN')
engine = sqlalchemy.create_engine('hive://', creator=conn)
data = bz.data(engine)
Я могу установить соединение и сгенерировать движок, но когда я запускаю bz.data, происходит сбой с ошибкой
TypeError: 'HiveServer2Connection' object is not callable
Любая помощь приветствуется.
Ответ
from pyhive import import hive
import sqlalchemy
from impala.dbapi import import connect
def conn():
return connect(host='myhost.com', port=10000, database='database', user='username', auth_mechanism='PLAIN')
engine = sqlalchemy.create_engine('hive://', creator=conn)
#Workaround
import blaze as bz
data = bz.data(engine)
2 ответа
Решение
from pyhive import import hive
import sqlalchemy
from impala.dbapi import import connect
def conn():
return connect(host='myhost.com', port=10000, database='database', user='username', auth_mechanism='PLAIN')
engine = sqlalchemy.create_engine('hive://', creator=conn)
#Workaround
import blaze as bz
data = bz.data(engine)
У меня была такая же проблема при использовании Impyla для подключения к Impala с SQLAlchemy. Создание функции conn вместо назначения ее переменной сработало.