Python 连接 hive 查询数据

<!-- lang:shell -->
Jps   jdk 1.5 时引入的一个工具, 可以用来查看当前主机所有  java 进程的ID 的一个命令行工具。
[root@PROC_141 htt]# jps
966 CassandraDaemon
22070 NameNode
2471 Jps
22218 DataNode
22426 SecondaryNameNode
10763 Elasticsearch
15019 ResourceManager
22779 NodeManager 
2302 RunJar    # 为  hive 的 进程 ID,



<!-- lang: shell -->
hive --service hiveserver        # 此时 hive 监听  10000 端口



<!-- lang: python -->
#!/usr/bin/env python
import sys
import traceback
sys.path.append('/opt/old/htt/hadoop/apache-hive-0.13.1-bin/lib/py')
from hive_service import ThriftHive
from hive_service.ttypes import HiveServerException
from thrift import Thrift
from thrift.transport import TSocket
from thrift.transport import TTransport
from thrift.protocol import TBinaryProtocol

def hiveExe(sql):

	try:
		transport = TSocket.TSocket('127.0.0.1', 10000) 
		transport = TTransport.TBufferedTransport(transport)
		protocol = TBinaryProtocol.TBinaryProtocol(transport)
		client = ThriftHive.Client(protocol)
		transport.open()

		client.execute(sql)

		print "The return value is : " 
		print client.fetchAll()
		print "............"
		transport.close()
	except Thrift.TException, tx:
	traceback.print_exc()
		print 'exception %s' % (tx.message)

if __name__ == '__main__':
	hiveExe("select * from test")


返回值如下,  !目前还没有感觉比 普通的数据库快多少啊。。
<!-- lang: shell -->
[root@PROC_141 htt]# python2.7  hive_python.py 
The return value is : 
['NULL\tNULL', 'NULL\tNULL', 'NULL\tNULL']
 ............

转载于:https://my.oschina.net/innovation/blog/359725

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值