用python连接SparkThriftServer

前些日子有想用python从SparkThriftServer上取数的需求,与其他同事共同研究一番之后终于有了结果。

其实很简单,只需要一个叫做impyla的库即可实现。不过在安装的时候需要注意,thrift_sasl的版本须是文档中所说的0.2.1,而不能是最新版本,否则会报错。

安装好之后,只需要

from impala.dbapi import connect

sql = 'SELECT ......'
conn = connect(host='xx.xx.xx.xx', port=xxxxx, auth_mechanism='PLAIN', database='DATABASE')
cursor = conn.cursor()
cursor.execute(sql)
result = cursor.fetchall()

即可;

(P.S.: 这里import的时候的名字是impala,但pip的时候需要是impyla)

同时,还有一点非常好的是,impyla对python的数据结构非常友好,在得到结果后如需要将其转成pandas的DataFrame话非常方便。

Contents


本站采用知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议

知识共享许可协议