添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
相关文章推荐
有情有义的蜡烛  ·  elementUI tree ...·  2 周前    · 
踏实的毛衣  ·  java8 stream取出 ...·  3 月前    · 
重感情的热水瓶  ·  mysql数量大于某值·  7 月前    · 
留胡子的打火机  ·  (连载)Android 8.0 : ...·  11 月前    · 
首发于 猴子Python

如何用python 连接impala 并读数据库文件?

最近需要分析多张表特定事件发生次数的描述统计信息,一个一个写sql太麻烦,重复劳动也比较多。目前使用impala,所以尝试用python连接impala进行分析,直接调取describe方法。记录下自己整理的过程。

什么是impala以及和hive的区别参见:

zhihu.com/answer/109540

1.导入impyla

目前已经导入了,如果之前尚未导入,勾选前面的方框后,点击右下角的Apply 按钮即可。

如果导入比较慢可以换下面的方式


进入后输入命令 conda install impyla,注意这里impyla,不是impala。等执行结束就可以啦。

2.打开anoconda 建立连接

#导入包
from impala.dbapi import connect
#连接impala 
conn=connect(host='XXX.XX.XX.XX',port=21050) 
#定义一个执行者
cur=conn.cursor()
#执行语句并测试连接是否成功
cur.execute('SHOW DATABASES')
#将执行结果给fetchall并打印结果
print(cur.fetchall())
# 先关闭执行者	
cur.close()
# 再关断开连接
conn.close()

定义了一个函数可以完成读取并执行SQL,后期直接调用这个函数就可以完成数据读取并将sql查询结果返回。

#导入包
from impala.dbapi import connect
import pandas as pd
def sql_ext(sql):
    conn=connect(XXX.XX.XX.XX',port=21050)
    #定义一个执行者
    cur=conn.cursor()
    cur.execute(sql)
    data_temp=cur.fetchall()
    tempDf=pd.DataFrame(data_temp)