0

全部,

我正在尝试从 hive2 thrift 服务器将数据加载到 blaze 中。我想做一些类似于这里发布的分析。这是我目前的过程。

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)
4

2 回答 2

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)
于 2017-01-05T10:40:01.870 回答
1

使用 impyla 通过 SQLAlchemy 连接到 Impala 时,我遇到了同样的问题。使 conn 成为函数而不是将其分配给变量是可行的。

于 2018-08-30T06:26:09.050 回答