本文研究的主要问题是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实例代码相关推荐

  1. python读取word页眉_python批量替换页眉页脚实例代码

    简介 本文分享的实例代码主要通过python语言实现批量替换页眉页脚的操作功能,具体如下. 代码 #!/usr/bin/env python # -*- coding: utf-8 -*- impor ...

  2. python奇数偶数行输出_python对输出的奇数偶数排序实例代码

    我们从小学的时候就学习了奇数偶数,知道整数可以分成奇数和偶数两大类,能被2整除的数叫做偶数,不能被2整除的数叫做奇数.在我们python编程中,会遇到很多数字和代码,有的时候会很乱,不好操作. 在遇到 ...

  3. python批量解压文件_python 批量解压压缩文件的实例代码

    下面给大家介绍python 批量解压压缩文件的实例代码,代码如下所述: #/usr/bin/python#coding=utf-8import os,sys import zipfile open_p ...

  4. python文件按时间排序_python按修改时间顺序排列文件的实例代码

    python按修改时间顺序排列文件,具体代码如下所示: import os def sort_file_by_time(file_path): files = os.listdir(file_path ...

  5. python图像合成代码_python使用pil库实现图片合成实例代码

    本文研究的主要是python PIL实现图片合成的相关内容,具体介绍如下,分享实例代码. 在项目中需要将两张图片合在一起.遇到两种情况,一种就是两张非透明图片的合成, 一种是涉及到透明png的合成. ...

  6. python读取第二行_使用Python操作Excel(二):读取数据表

    上一节我们提到,使用openpyxl可以方便的对数据表进行操作,例如:抽象Excel数据并存入数据库 将数据库数据导出到Excel 给一个已存在的数据表追加信息 我们还介绍了一些Excel的基本术语, ...

  7. python批量导入网页信息_python批量导入数据进Elasticsearch的实例

    ES在之前的博客已有介绍,提供很多接口,本文介绍如何使用python批量导入.ES官网上有较多说明文档,仔细研究并结合搜索引擎应该不难使用. 先给代码 #coding=utf-8 from datet ...

  8. python 操作mysql 返回字典_Python查询Mysql时返回字典结构的代码

    MySQLdb默认查询结果都是返回tuple,输出时候不是很方便,必须按照0,1这样读取,无意中在网上找到简单的修改方法,就是传递一个cursors.DictCursor就行. 默认程序: MySQL ...

  9. python刷b站教程_python + selenium 刷B站播放量的实例代码

    B站UP主的主要收益来源(播放量获取的奖励.用户充电.广告等等) 首先做up主最直接的就是做视频,当你的粉丝过1000或者视频总播放超过10万时可以申请创造激励,申请创造激励之后,你的原创视频播放会给 ...

最新文章

  1. javascript:为string类添加三个成员,实现去左,右,及所有空格
  2. 聊天宝彻底凉了,遭罗永浩抛弃,团队就地解散
  3. 重读图灵经典之作,九条反驳意见引人深思
  4. 【CSON原创】基于HTML5的超级玛丽游戏demo
  5. jquery学习手记(7)Data_utility_index方法
  6. Lidgren.Network – an introduction to networking in C# games
  7. 迅雷第四季度净亏损3240万美元 环比亏损幅度扩大
  8. 全国计算机等级考试题库二级C操作题100套(第79套)
  9. linux内核中打开文件 及属性控制
  10. npm install全局安装的模块路径自定义管理
  11. C++ Member Functions的各种调用方式
  12. python可以替代java吗_Python 并非最好的编程语言,它无法取代 C/C++ 和 Java
  13. cnzz.php,CNZZ网站流量统计原理简析
  14. 一行搞定List<T>中的成员数量统计
  15. Justinmind6.X软件及汉化包下载地址
  16. Ubuntu解决文件带锁问题
  17. 硬核干货:网易云音乐如何做产品创新
  18. BZOJ4768: 2555加强版之wxh loves substring
  19. postgresql导入导出大文件 copy命令
  20. 计算机存在旧版本打印驱动,如何查看打印机的驱动版本

热门文章

  1. Android之ScrollView
  2. php phpass,ass.php · ciweiin/海洋cms 海洋影视管理系统 - 免费开源PHP - Gitee.com
  3. 华为薪资等级结构表_华为21级程序员月薪曝光:月薪27w,什么概念!程序员中的战斗机...
  4. C语言学习及应用笔记之二:C语言static关键字及其使用
  5. 四、比特币的基本原理
  6. CoreAnimation编程指南(九)图层布局
  7. python文件只读模式_Python脚本去除文件的只读性操作
  8. 合振动的初相位推导_基于振动信号的机械设备故障诊断(一)
  9. Java学习路线,你值得了解
  10. python字典怎么添加值_python字典中如何添加键值对