hiveusingpython(windows下怎么用python连接hive数据库)

1.windows下怎么用python连接hive数据库

由于版本的不同,Python 连接 Hive 的方式也就不一样。

在网上搜索关键字 python hive 的时候可以找到一些解决方案。大部分是这样的,首先把hive 根目录下的$HIVE_HOME/lib/py拷贝到 python 的库中,也就是 site-package 中,或者干脆把新写的 python 代码和拷贝的 py 库放在同一个目录下,然后用这个目录下提供的 thrift 接口调用。

示例也是非常简单的。类似这样:import sys 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:print '%s' % (tx.message) if __name__ == '__main__':hiveExe("show tables")或者是这样的:#!/usr/bin/env pythonimport sysfrom hive import ThriftHivefrom hive.ttypes import thrift import Thriftfrom thrift.transport import TSocketfrom thrift.transport import TTransportfrom thrift.protocol import TBinaryProtocoltry:transport = TSocket.TSocket('14.18.154.188', 10000)transport = TTransport.TBufferedTransport(transport)protocol = TBinaryProtocol.TBinaryProtocol(transport)client = ThriftHive.Client(protocol)transport.open()client.execute("CREATE TABLE r(a STRING, b INT, c DOUBLE)")client.execute("LOAD TABLE LOCAL INPATH '/path' INTO TABLE r")client.execute("SELECT * FROM test1")while (1):row = client.fetchOne()if (row == None):breakprint rowveclient.execute("SELECT * FROM test1")print client.fetchAll()transport.close()except Thrift.TException, tx:print '%s' % (tx.message)但是都解决不了问题,从 netstat 中查看可以发现 TCP 连接确实是建立了,但是不执行 hive 指令。

也许就是版本的问题。还是那句话,看各种中文博客不如看官方文档。

项目中使用的 hive 版本是0.13,此时此刻官网的最新版本都到了1.2.1了。中间间隔了1.2.0、1.1.0、1.0.0、0.14.0。

但是还是参考一下官网的方法试试吧。首先看官网的 setting up hiveserver2 可以看到启动 hiveserver2 可以配置最大最小线程数,绑定的 IP,绑定的端口,还可以设置认证方式。

(之前一直不成功正式因为这个连接方式)然后还给了 python 示例代码。import pyhs2with pyhs2.connect(host='localhost',port=10000,authMechanism="PLAIN",user='root',password='test',database='default') as conn:with conn.cursor() as cur:#Show databasesprint cur.getDatabases()#Execute querycur.execute("select * from table")#Return column info from queryprint cur.getSchema()#Fetch table resultsfor i in cur.fetch():print 在拿到这个代码的时候,自以为是的把认证信息给去掉了。

然后运行发现跟之前博客里介绍的方法结果一样,建立了 TCP 连接,但是就是不执行,也不报错。这是几个意思?然后无意中尝试了一下原封不动的使用上面的代码。

结果可以用。唉。

首先声明一下,hive-site.xml中默认关于 hiveserver2的配置我一个都没有修改,一直是默认配置启动 hiveserver2。没想到的是默认配置是有认证机制的。

2.为什么Python在开发者人群中备受欢迎?

Python是一门更注重可读性和效率的语言,尤其是相较于Java,PHP以及C++ 这样的语言,它的这两个优势让其在开发者中大受欢迎。

诚然,它有点老了,但仍是80后啊 —— 至少没有 Cobol 或者 Fortran 那么老。而且,如果还能派上用场的话,为啥要折腾着改变它呢 (尤其在这个还有那么多方法可以提升它性能的时候)? 实际上这要看你怎么看待它,生命线长本身就是件好事 —— 说明它稳定且可靠。

如果你是像其他许多人一样都是从 Java,C 或者 Perl 开始进入职业生涯的,那么学习 Python 的曲线基本上是不存在的。然而也正是由于 Python 易于上手这一事实,让有些人没有意识到 Python 也应该是一项必要的编程技能。

我要向各位坦诚,我对 Python 的喜爱也是从几年以前才开始的。不经历长期的痛苦教训,我们是不会对这门语言以及它的平台所提供的一切心生感激的。

我写下这篇短文的目的就是要将你从同样的痛苦中拯救出来,让你明白为什么需要去了解 Python。 1. Python 易于学习 好吧,相较于其它许多你可以拿来用的编程语言而言,它“更容易一些”。

Python 的语言没有多少仪式化的东西,所以就算不是一个 Python 专家,你也能读懂它的代码。我的经验是,通过实例来学习和教授 Python 要比采取同样的方式去接触比方说 Ruby 或者 Perl 更加容易,因为 Python 的语法里面条条框框以及特殊的处理场景要少得多。

它所专注的并非语言表现的丰富程度,而是你想要用你的代码完成什么。 2. Python 让你能用少量的代码构建出更多的功能 Python 能带给所有开发者一种快速的学习体验。

通过实践,你可以在最多两天之内轻松实现一个具备基础功能的游戏 (而这还是在对编程完全不了解的情况下)。 另外一些让 Python 成为一门引人注目的编程语言的因素就是它的可读性和高效性。

3. Python 是一门多才多艺的语言,更是一个平台 Python 今年 28 岁了。尽管它比我的许多读者年纪还要大,但是仍然受到高度的关注,因为它可以被应用于如今你所能想得到的相当多的软件开发和操作场景。

要管理本地或者云基础设施吗?Python可以。开发网站?OK,它也能行的。

需要处理一个 SQL 数据库?可以。需要为 Hive 或者 Pig 定制一个功能?能做到。

hiveusingpython

3.高悬赏求人物肖象作文,要求运用夸张比喻,300字

我有一个可以说是返老还童的奶奶。

别看她67岁高龄。可她的身子骨硬朗的很。

黑发间渐渐生了些许白发。她鼻子上架着的一副近视眼镜。

给她添了不少光。越看越有些知识分子的味道。

红润的脸 庞上带着和蔼的笑颜。她虽有些胖,但在我看来,她是吃了知识的大饼才长胖的。

常言道:胖是福嘛。于是有了她健康的身体,人民教师的成分。

我喜欢我可爱的奶奶。这胖胖的奶奶可关心我们了。

平时为我们准备周到。还施舍点小费。

这样,我们便加笔加零食--双项接收了。对于弟弟。

奶奶为了他健康成长,个倍儿高。奶奶消费了两大瓶"安利蛋白粉''"钙片"他十分高兴的饮用。

我挺爱我的奶奶。和蔼的奶奶有时也会来个晴转阴。

在一瞬间变的严肃起来。那就一定是我的小弟因贪玩延误了学习的时候。

这时,他会不自觉的的低下头,红红的脸,烫烫的。我还是喜欢晴天,奶奶恩赐的晴天。

我经常得到奶奶的鼓励。于是,我对学习情有独钟。

奶奶就像我形影不离的,无话不说的好朋友。我爱我的奶奶,一个和蔼,关心我们的奶奶,一个严肃而又经常鼓励我们的奶奶。

一个我心中永远不落的好朋友--奶奶。我想我的奶奶永远快乐健康。

4.hive中如何调用python函数

ADD FILE /home/taobao/dw_hive/hivelets/smoking/ext/tsa/hivesql/bjx_topic_t1/splitsysin.py.bak;create table if not exists splittest_t1(topic_id string,topic_title string,topic_desc string,biz_date string,gmt_create string) PARTITIONED BY(pt string)row format delimited fields terminated by '\001'lines terminated by '\n'STORED AS textfile;select TRANSFORM(topic_id,topic_title,topic_desc,biz_date,gmt_create)USING 'splitsysin.py'as topic_id,topic_title,topic_desc,biz_date,gmt_createfrom r_bjx_dim_topic_t1;。

5.Python的这几个版本区别

系统区别:1、Download Windows X86 可供电脑系统32位使用。

2、Download Windows X86-64 可供电脑系统64位使用。版本区别:1、Download Windows X86 web-based installer 是通过需要联网完成安装的文件。

2、Download Windows X86 executable installer 是可执行的安装文件,下载后,双击安装即可。3、Download Windows X86 embeddable zip file 是可嵌入式的压缩包文件,可以集成到其他应用中。

扩展资料:Python2与Python3的选择:因为早期的 Python版本在基础方面设计存在着一些不足之处。2008 年的时候 Guido van Rossum 又重新开发 Python 3.0(被称为Python 3000,或简称Py3k),Python3在设计的时候很好地解决了这些遗留问题, 并且在性能上也有了一定的提升,。

然而 Python3 带来的最大的问题就是不完全向后兼容,当时向后兼容的版本是Python2.6。Python开发团队无法一下子就让所有项目和类库都转到 Python3.0 上面。

所以,两个版本就进入了长期并行开发和维护的状态。但是就更新速度来说 ,Python3更新速度远快于Python2的速度,因为Python2目前主要以维护为主。

Python3是未来的趋势。

6.python pyinstaller问题

打包python脚本为exe的坎坷经历, by pyinstaller方法 又应验了那句歌词. 不经历风雨, 怎么见得了彩虹.安装过程略去不提, 仅提示: pip install pyinstaller打包指令粗看包里的文档, 然后开始打包:打开console就用了这个命令: pyinstaller monitor_rt_quotes.py结果就是比预期麻烦的多的多的: 干活, 硬盘不停地balabala叫, 漫长这里记录一下控制台显示的提示信息:官方文档对上述指令的解释为:|PyInstaller| analyzes myscript.py and:Writes myscript.spec in the same folder as the script.Creates a folder build in the same folder as the script if it does not exist.Writes some log files and working files in the build folder.Creates a folder dist in the same folder as the script if it does not exist.Writes the myscript executable folder in the dist folder.In the dist folder you find the bundled app you distribute to your users.巨长的提示后, 得到了exe文件, 有18Mb的大小(太庞大了, 肥肥肥!!!), 但是结果很悲剧:D:\DB\fz\build\monitor_rt_quotes>monitor_rt_quotes.exe sz000911Error loading Python DLL: D:\DB\fz\build\monitor_rt_quotes\python27.dll (error code 126)估计是没有添加必要的打包选项造成的. 继续努力.不死心! 解决问题需要由简到繁, 先从hellowworld.py做起. 搞定了.被打包的文件: helloworld.py, 人人皆知.打包的命令: pyinstaller -D helloworld.py打包的console提示: 见随后的引述块打包发布exe时的纪律(注意事项):很简单的py脚本. Simple is better than complex. 应该遵守Python的规则.所以在打包为exe时, 应该尽量减少没有必要的python包的导入. 否则吃的太胖可以运行的exe文件位于: dist 目录下, 而不是build目录下的.运行后的结果:D:\DB\fz>pyinstaller -D helloworld.py155 INFO: PyInstaller: 3.2.1155 INFO: Python: 2.7.11155 INFO: Platform: Windows-XP-5.1.2600-SP3155 INFO: wrote D:\DB\fz\helloworld.spec155 INFO: UPX is not available.155 INFO: Extending PYTHONPATH with paths['D:\\DB', 'D:\\DB\\fz']155 INFO: checking Analysis155 INFO: Building Analysis because out00-Analysis.toc is non existent155 INFO: Initializing module dependency graph。

155 INFO: Initializing module graph hooks。312 INFO: running Analysis out00-Analysis.toc327 INFO: Adding Microsoft.VC90.CRT to dependent assemblies of final executable required by d:\anaconda2\python.exe327 INFO: Found C:\WINDOWS\WinSxS\Policies\x86_policy.9.0.Microsoft.VC90.CRT_1fc8b3b9a1e18e3b_x-ww_b7353f75\9.0.30729.1.policy327 INFO: Searching for assembly x86_Microsoft.VC90.CRT_1fc8b3b9a1e18e3b_9.0.30729.1_x-ww 。

327 INFO: Found manifest C:\WINDOWS\WinSxS\Manifests\x86_Microsoft.VC90.CRT_1fc8b3b9a1e18e3b_9.0.30729.1_x-ww_6f74963e.manifest327 INFO: Searching for file msvcr90.dll327 INFO: Found file C:\WINDOWS\WinSxS\x86_Microsoft.VC90.CRT_1fc8b3b9a1e18e3b_9.0.30729.1_x-ww_6f74963e\msvcr90.dll327 INFO: Searching for file msvcp90.dll327 INFO: Found file C:\WINDOWS\WinSxS\x86_Microsoft.VC90.CRT_1fc8b3b9a1e18e3b_9.0.30729.1_x-ww_6f74963e\msvcp90.dll327 INFO: Searching for file msvcm90.dll343 INFO: Found file C:\WINDOWS\WinSxS\x86_Microsoft.VC90.CRT_1fc8b3b9a1e18e3b_9.0.30729.1_x-ww_6f74963e\msvcm90.dll343 INFO: Found C:\WINDOWS\WinSxS\Policies\x86_policy.9.0.Microsoft.VC90.CRT_1fc8b3b9a1e18e3b_x-ww_b7353f75\9.0.30729.1.policy343 INFO: Adding redirect Microsoft.VC90.CRT version (9, 0, 21022, 8) -> (9, 0,30729, 1)484 INFO: Caching module hooks。500 INFO: Analyzing D:\DB\fz\helloworld.py500 INFO: Loading module hooks。

500 INFO: Loading module hook "hook-encodings.py"。5405 INFO: Loading module hook "hook-pleted successfully.7062 INFO: checking PKG7062 INFO: Building PKG because out00-PKG.toc is non existent7077 INFO: Building PKG (CArchive) out00-PKG.pkg7125 INFO: Building PKG (CArchive) out00-PKG.pkg complet。

hiveusingpython

转载请注明出处编程代码网 » hiveusingpython(windows下怎么用python连接hive数据库)

资讯

python难度知乎(零基础转行学习Python编程有多大的难度)

阅读(13)

本文主要为您介绍python难度知乎,内容包括零基础转行学习Python编程有多大的难度,python编程真的有这么难吗?,学习python需要英语水平很高吗?。Python简单易学、免费开源、高层语言、可移植性超强、可扩展性、面向对象、可嵌入型、丰富的库

资讯

python3.1(如何在安装pip3以及第三方python库)

阅读(25)

本文主要为您介绍python3.1,内容包括如何在安装pip3以及第三方python库,关于python软件版本的问题python不同版本中,是不是有些,python网络编程教程在哪里可以下载?。一。先安装python3 1. 先到官方网站下载python3的安装包,去downloads/sou

资讯

python模块介绍大全(python十大必学模块是什么?)

阅读(23)

本文主要为您介绍python模块介绍大全,内容包括python十大必学模块是什么?,Python的自带模块的函数之类的说明有相关文档吗?比较急的是O?,Python中Turtle模块的基本指令都。这个不能一概而论的,据说python目前高达27万+个库,看你学习的方向必

资讯

python入门经典人民邮电(Python课程培训哪家好?)

阅读(20)

本文主要为您介绍python入门经典人民邮电,内容包括有什么比较好的介绍python的入门且实用的书籍么,请推荐一下搜狗,python培训课程哪家好?,Python课程培训哪家好?。爬虫工程师、数据挖掘、web开发、云计算、自动化运维等等都是现下甚至未来

资讯

python启动多个进程(Python怎么防止同一个程序出现多个进程)

阅读(25)

本文主要为您介绍python启动多个进程,内容包括Python怎么防止同一个程序出现多个进程,python下多进程时全局变量在子进程怎么能更新?遇到从子进程更?,去进程为什么要变量python下多进程时全局变量在子进程怎么能更新?。回复 4# notbusy 使

资讯

python设置当前路径(Python常见文件如何操作?)

阅读(19)

本文主要为您介绍python设置当前路径,内容包括python怎么设置工作路径为当前目录,Python常见文件如何操作?,怎么用python实现一个页面的开发?。# -*-coding:utf8 -*- Python常见文件操作示例 os。path 模块中的路径名访问函数分隔basename

资讯

pythondelegate(python中**是什么意思?)

阅读(12)

本文主要为您介绍pythondelegate,内容包括python中**是什么意思?,千峰培训的python怎么样,python里面LabelBinarizer的用法。** 在python里面表示幂运算传递实参和定义形参(所谓实参就是调用函数时传入的参数,形参则是定义函数是定义的参数)的

资讯

python数组类型转换(python十大必学模块是什么)

阅读(32)

本文主要为您介绍python数组类型转换,内容包括python数据类型怎么转换,python怎么将数组转换为矩阵,Python如何同时输入不同数据类型的数据。这个不能一概而论的,据说python目前高达27万+个库,看你学习的方向必学模块也有不同,简单列举:网络通

资讯

macpython默认路径(Mac如何修改iTunes备份路径?)

阅读(21)

本文主要为您介绍macpython默认路径,内容包括mac安装的python路径在哪个文件夹,Mac如何修改iTunes备份路径?,Mac上装Python3的最好方法是什么?。步骤如下: 1.通常情况下,iTunes的默认备份路径为/Library/ApplicationSupport/MobileSync/B

资讯

pythonasserterror(Python中何时使用断言assert)

阅读(22)

本文主要为您介绍pythonasserterror,内容包括Python中何时使用断言assert,抢你妹asserterror怎么解?,什么时候用assert。使用断言表达式,通常会有人误用它,所以我决定写一篇文章来说明何时使用断言,什么时候不用。为那些还不清楚它的人,Python

资讯

pythonurllib2长连接(如何在Python中使用urllib2)

阅读(22)

本文主要为您介绍pythonurllib2长连接,内容包括如何在Python中使用urllib2,12怎么装urllib2?python2.7.12怎么装urll,Python爬链接爬虫怎么写?。urllib和urllib2urllib和urllib2都是接受URL请求的相关模块,但是urllib2可以接受一个Request类