念念不忘
必有回响🎉

Python3连接Hiveserver2

最近有个小需求,需要自动在Hive的数据库中创建一些通用的基础表,用于不同城市的数据计算服务,通常我会整理出一个hql文档,将所有的sql统统塞到一个文件里,然后直接执行,这种虽然简便,但是却不易维护,于是我就用python撸个小工具,能够适配各种不同的配置。那么此时就需要用python3来连接hiveserver2了。方法如下:

1.安装依赖包

pip3 install sasl thrift thrift-sasl  PyHive

 
2.项目中直接引用

from pyhive import hive

 
3.创建连接的代码

conn = hive.Connection(host='10.10.10.101',
                           port=10000,
                           username='hive',
                           database='dbname')

其他DDL、DML的语法与mysql-connector的用法一模一样,有空在下面给大家大致罗列一下。

4.DDL相关
执行完第三步以后,即可进行数据库的相关操作
4.1 创建表

cursor = conn.cursor()
cursor.execute("CREATE EXTERNAL TABLE TBNAME(ID BIGINT) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' LOCATION '/user/hive/test/tbname'")
cursor.close()

这里其实有个小坑的第一,执行的SQL里面不要出现“;”;第二,如果你的SQL是从文件里读取出来的,那么你的代码应该是下面这样才行:

cursor = conn.cursor()
sql = line["tbname"] # line表示一个字典,里面k是表名,v是具体的sql
cursor.execute(str(sql))
cursor.close()

4.2 删除表

cursor = conn.cursor()
cursor.execute("DROP TABLE TBNAME")
cursor.close()

 

Python3连接Hiveserver2
5 (100%) 1 vote[s]
赞(0) 打赏
未经允许不得转载:Charles's Blog » Python3连接Hiveserver2

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏