美文网首页
使用python操作hive

使用python操作hive

作者: 1大头1 | 来源:发表于2019-03-05 16:20 被阅读0次

使用python操作hive

python版本为2.7.5(redhat系统自带)

hive版本为1.1.0

连接方法一

1、安装pyhive

1.1、安装pip:

$ curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py #下载安装脚本

$ sudo python get-pip.py

pip安装

1.2、安装python开发包

查看系统是否有python开发包

rpm -qa|grep python-dev

rpm -qa|grep cyrus-sasl-devel

安装开发包

rpm -ivh python-devel-2.7.5-34.el7.x86_64.rpm

rpm -ivh cyrus-sasl-devel-2.1.26-19.2.el7.x86_64.rpm

1.3、安装依赖包

所需依赖包

thrift,thrift_sasl,sasl

安装命令如:

$ sudo pip install thrift

安装成功如图

安装成功

1.4、安装pyhive

安装命令如:

sudo pip install pyhive

安装过程

2、测试

所需环境已经完成,进行编程

# encoding=utf-8

from pyhive import hive

from TCLIService.ttypes import TOperationState #此地方可以忽略,为了获取执行结果状态

# 打开hive连接,需要启动hiveserver2

hiveConn = hive.connect(host='127.0.0.1',port=10000)

cursor = hiveConn.cursor()

# 执行sql语句

cursor.execute('show databases', async=True)

# 得到执行语句的状态

status = cursor.poll().operationState

print "status:",status

# 打印结果

#print cursor.fetchall()

#print cursor.fetchall()

for result in cursor.fetchall():

    print "aaaaa"*20

    print result

print "end**" *10

# 关闭hive连接

cursor.close()

hiveConn.close()

将以上python程序保存成py2hive.py文件,运行即可

$ python py2hive.py

运行结果

3、编译

将脚本程序编译为二进制文件

3.1、编译方式一

使用python命令行进行

> import py_compile

> py_compile.compile("py2hive.py")

在与py2hive.py 同级目录下出现 py2hive.pyc 的文件

使用 python py2hive.pyc 命令执行得到结果和上图一致

3.2、编译方式二

使用命令行 python -o -m py_compile py2hive.py,生成pyo的文件

使用python py2hive.pyo 运行结果与以上一致

运行结果

无论是pyc,还是pyo文件,都无法单独自己执行,是因为python脚本在开头没有指定环境变量,导致被当作是shell命令来执行。

需要在首行加上#!/usr/bin/python ,这样就会自动被python解释.py文件进行执行。

当然也可以使用cloudera官网给出的impyla 连接hive

相关文章

网友评论

      本文标题:使用python操作hive

      本文链接:https://www.haomeiwen.com/subject/eukouqtx.html