python操作hive数据库代码_python导出hive数据表的schema实例代码
本文研究的主要问题是python语言导出hive数据表的schema,分享了实现代码,具体如下。
为了避免运营提出无穷无尽的查询需求,我们决定将有查询价值的数据从mysql导入hive中,让他们使用HUE这个开源工具进行查询。想必他们对表结构不甚了解,还需要为之提供一个表结构说明,于是编写了一个脚本,从hive数据库中将每张表的字段即类型查询出来,代码如下:
#coding=utf-8
import pyhs2
from xlwt import *
hiveconn = pyhs2.connect(host='10.46.77.120',
port=10000,
authMechanism='PLAIN',
user='hadoop',
database='hibiscus_data',
)
def create_excel():
sql = 'show tables'
tables = []
with hiveconn.cursor() as cursor:
cursor.execute(sql)
res = cursor.fetch()
for table in res:
tables.append(table[0])
tableinfo = []
for table in tables:
tableinfo.append(get_column_info(table))
create_excel_ex(tableinfo)
def create_excel_ex(tableinfo):
w = Workbook()
sheet = w.add_sheet(u'表结构')
row = 0
for info in tableinfo:
row = write_tale_info(info,sheet,row)
w.save('hive_schema.xls')
def write_tale_info(tableinfo,sheet,row):
print row
sheet.write_merge(row,row,0,2,tableinfo['table'])
row += 1
sheet.write(row,0,u'名称')
sheet.write(row,1,u'类型')
sheet.write(row,2,u'解释')
row += 1
fields = tableinfo['fields']
for field in fields:
sheet.write(row,0,field['name'])
sheet.write(row,1,field['type'])
row += 1
return row + 1
def get_column_info(table):
sql = 'desc {table}'.format(table=table)
info = {'table':table,'fields':[]}
with hiveconn.cursor() as cursor:
cursor.execute(sql)
res = cursor.fetch()
for item in res:
if item[0] == '':
break
info['fields'].append({'name':item[0],'type':item[1]})
return info
if __name__ == '__main__':
create_excel()
其实,我们的hive数据库将所有的元数据存储在了mysql当中,分析这些元数据也可以获得表结构信息。
总结
以上就是本文关于python导出hive数据表的schema实例代码的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站其他相关专题,如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!
python操作hive数据库代码_python导出hive数据表的schema实例代码相关推荐
- python读取word页眉_python批量替换页眉页脚实例代码
简介 本文分享的实例代码主要通过python语言实现批量替换页眉页脚的操作功能,具体如下. 代码 #!/usr/bin/env python # -*- coding: utf-8 -*- impor ...
- python奇数偶数行输出_python对输出的奇数偶数排序实例代码
我们从小学的时候就学习了奇数偶数,知道整数可以分成奇数和偶数两大类,能被2整除的数叫做偶数,不能被2整除的数叫做奇数.在我们python编程中,会遇到很多数字和代码,有的时候会很乱,不好操作. 在遇到 ...
- python批量解压文件_python 批量解压压缩文件的实例代码
下面给大家介绍python 批量解压压缩文件的实例代码,代码如下所述: #/usr/bin/python#coding=utf-8import os,sys import zipfile open_p ...
- python文件按时间排序_python按修改时间顺序排列文件的实例代码
python按修改时间顺序排列文件,具体代码如下所示: import os def sort_file_by_time(file_path): files = os.listdir(file_path ...
- python图像合成代码_python使用pil库实现图片合成实例代码
本文研究的主要是python PIL实现图片合成的相关内容,具体介绍如下,分享实例代码. 在项目中需要将两张图片合在一起.遇到两种情况,一种就是两张非透明图片的合成, 一种是涉及到透明png的合成. ...
- python读取第二行_使用Python操作Excel(二):读取数据表
上一节我们提到,使用openpyxl可以方便的对数据表进行操作,例如:抽象Excel数据并存入数据库 将数据库数据导出到Excel 给一个已存在的数据表追加信息 我们还介绍了一些Excel的基本术语, ...
- python批量导入网页信息_python批量导入数据进Elasticsearch的实例
ES在之前的博客已有介绍,提供很多接口,本文介绍如何使用python批量导入.ES官网上有较多说明文档,仔细研究并结合搜索引擎应该不难使用. 先给代码 #coding=utf-8 from datet ...
- python 操作mysql 返回字典_Python查询Mysql时返回字典结构的代码
MySQLdb默认查询结果都是返回tuple,输出时候不是很方便,必须按照0,1这样读取,无意中在网上找到简单的修改方法,就是传递一个cursors.DictCursor就行. 默认程序: MySQL ...
- python刷b站教程_python + selenium 刷B站播放量的实例代码
B站UP主的主要收益来源(播放量获取的奖励.用户充电.广告等等) 首先做up主最直接的就是做视频,当你的粉丝过1000或者视频总播放超过10万时可以申请创造激励,申请创造激励之后,你的原创视频播放会给 ...
最新文章
- javascript:为string类添加三个成员,实现去左,右,及所有空格
- 聊天宝彻底凉了,遭罗永浩抛弃,团队就地解散
- 重读图灵经典之作,九条反驳意见引人深思
- 【CSON原创】基于HTML5的超级玛丽游戏demo
- jquery学习手记(7)Data_utility_index方法
- Lidgren.Network – an introduction to networking in C# games
- 迅雷第四季度净亏损3240万美元 环比亏损幅度扩大
- 全国计算机等级考试题库二级C操作题100套(第79套)
- linux内核中打开文件 及属性控制
- npm install全局安装的模块路径自定义管理
- C++ Member Functions的各种调用方式
- python可以替代java吗_Python 并非最好的编程语言,它无法取代 C/C++ 和 Java
- cnzz.php,CNZZ网站流量统计原理简析
- 一行搞定List<T>中的成员数量统计
- Justinmind6.X软件及汉化包下载地址
- Ubuntu解决文件带锁问题
- 硬核干货:网易云音乐如何做产品创新
- BZOJ4768: 2555加强版之wxh loves substring
- postgresql导入导出大文件 copy命令
- 计算机存在旧版本打印驱动,如何查看打印机的驱动版本
热门文章
- Android之ScrollView
- php phpass,ass.php · ciweiin/海洋cms 海洋影视管理系统 - 免费开源PHP - Gitee.com
- 华为薪资等级结构表_华为21级程序员月薪曝光:月薪27w,什么概念!程序员中的战斗机...
- C语言学习及应用笔记之二:C语言static关键字及其使用
- 四、比特币的基本原理
- CoreAnimation编程指南(九)图层布局
- python文件只读模式_Python脚本去除文件的只读性操作
- 合振动的初相位推导_基于振动信号的机械设备故障诊断(一)
- Java学习路线,你值得了解
- python字典怎么添加值_python字典中如何添加键值对