作者:月逝彼山 | 来源:互联网 | 2023-07-31 18:39
yuminstallgcc-cpython-devel.x86_64cyrus-sasl-devel.x86_64pipinstallsaslpipinstallthriftpip
yum install gcc-c++ python-devel.x86_64 cyrus-sasl-devel.x86_64
pip install sasl
pip install thrift
pip install thrift-sasl
pip install PyHive
以下为代码demo,功能是打印出所有表的建表语句。代码中连接的hive使用的LDAP验证方式,所以设置了用户名和密码。
import os
import sys
reload(sys)
sys.setdefaultencoding('utf8')
from pyhive import hiveusername = your user name
password = your pwd#database = 'test'
#dir_name = '/home/lwx/data/'+'dw'+'.sql'cnn=hive.Connection(host='your ip add', port='10000',auth='LDAP',username = username,password = password )
cursor=cnn.cursor()
dbs = ['test1','test2','test3']for db in dbs:cursor.execute("show tables in %s"%(db))for table in cursor.fetchall():cursor.execute("show create table %s.%s"%(db,table[0]))for i in cursor.fetchall():print str(i[0])
如果没有设置验证方式,如下
import os
import sys
reload(sys)
sys.setdefaultencoding('utf8')
from pyhive import hivecnn=hive.Connection(host='your ip add', port='10000',username = username ) #connection中也可以指定db
cursor=cnn.cursor()
dbs = ['test1','test2','test3']for db in dbs:cursor.execute("show tables in %s"%(db))for table in cursor.fetchall():cursor.execute("show create table %s.%s"%(db,table[0]))for i in cursor.fetchall():print str(i[0]) # print or other operations~
add : 2019-10-22
安装sasl遇到错误 : error: sasl/sasl.h: No such file or directory
解决: yum -y install cyrus-sasl cyrus-sasl-devel cyrus-sasl-lib