日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python操作hive数据库代码_Python连接Hive操作数据库

發(fā)布時間:2023/12/10 python 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python操作hive数据库代码_Python连接Hive操作数据库 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

前言

客戶端連接Hive需要使用HiveServer2。HiveServer2是HiveServer的重寫版本,HiveServer不支持多個客戶端的并發(fā)請求。當前HiveServer2是基于Thrift RPC實現(xiàn)的。它被設(shè)計用于為像JDBC、ODBC這樣的開發(fā)API客戶端提供更好的支持。Hive 0.11版本引入的HiveServer2。

Python客戶端連接HiveServer2

python中用于連接HiveServer2的客戶端有3個:pyhs2,pyhive,impyla。官網(wǎng)的示例采用的是pyhs2,但pyhs2的官網(wǎng)已聲明不再提供支持,建議使用impyla和pyhive。

數(shù)據(jù)庫亂碼問題

在Python代碼

conn = MySQLdb.Connect(host='localhost', user='root', passwd='root', db='python') 中加一個屬性:

改為:

conn = MySQLdb.Connect(host='localhost', user='root', passwd='root', db='python',charset='utf8')

charset是要跟你數(shù)據(jù)庫的編碼一樣,如果是數(shù)據(jù)庫是gb2312 ,則寫charset='gb2312'。

常用的函數(shù)

然后,這個連接對象也提供了對事務(wù)操作的支持,標準的方法

commit() 提交;

rollback() 回滾;

cursor用來執(zhí)行命令的方法:

callproc(self, procname, args):用來執(zhí)行存儲過程,接收的參數(shù)為存儲過程名和參數(shù)列表,返回值為受影響的行數(shù);

execute(self, query, args):執(zhí)行單條sql語句,接收的參數(shù)為sql語句本身和使用的參數(shù)列表,返回值為受影響的行數(shù);

executemany(self, query, args):執(zhí)行單挑sql語句,但是重復(fù)執(zhí)行參數(shù)列表里的參數(shù),返回值為受影響的行數(shù);

nextset(self):移動到下一個結(jié)果集;

cursor用來接收返回值的方法:

fetchall(self):接收全部的返回結(jié)果行;

fetchmany(self, size=None):接收size條返回結(jié)果行.如果size的值大于返回的結(jié)果行的數(shù)量,則會返回cursor.arraysize條數(shù)據(jù);

fetchone(self):返回一條結(jié)果行;

scroll(self, value, mode='relative'):移動指針到某一行.如果mode='relative',則表示從當前所在行移動value條,如果 mode='absolute',則表示從結(jié)果集的第一行移動value條。

代碼示例1

代碼示例2

代碼示例3

總結(jié)

以上是生活随笔為你收集整理的python操作hive数据库代码_Python连接Hive操作数据库的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。