python导出hive数据表的schema实例代码


Posted in Python onJanuary 22, 2018

本文研究的主要问题是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 相关文章推荐
python实现百度关键词排名查询
Mar 30 Python
python中日期和时间格式化输出的方法小结
Mar 19 Python
详解Python中time()方法的使用的教程
May 22 Python
Python实现一个服务器监听多个客户端请求
Apr 12 Python
Python单向链表和双向链表原理与用法实例详解
Aug 31 Python
python实现简单http服务器功能
Sep 17 Python
Django 框架模型操作入门教程
Nov 05 Python
python递归调用中的坑:打印有值, 返回却None
Mar 16 Python
Python无损压缩图片的示例代码
Aug 06 Python
Flask-SocketIO服务端安装及使用代码示例
Nov 26 Python
Python爬虫之Selenium实现窗口截图
Dec 04 Python
Python日志打印里logging.getLogger源码分析详解
Jan 17 Python
Python的SimpleHTTPServer模块用处及使用方法简介
Jan 22 #Python
一道python走迷宫算法题
Jan 22 #Python
浅谈使用Python内置函数getattr实现分发模式
Jan 22 #Python
python正则表达式及使用正则表达式的例子
Jan 22 #Python
Python深度优先算法生成迷宫
Jan 22 #Python
Python使用Tkinter实现机器人走迷宫
Jan 22 #Python
Python实现简单文本字符串处理的方法
Jan 22 #Python
You might like
Search File Contents PHP 搜索目录文本内容的代码
2010/02/21 PHP
JS解密入门之凭直觉解
2008/06/25 Javascript
Zero Clipboard js+swf实现的复制功能使用方法
2010/03/07 Javascript
基于jquery的finkyUI插件与Ajax实现页面数据加载功能
2010/12/03 Javascript
jquery插件tooltipv顶部淡入淡出效果使用示例
2013/12/05 Javascript
javascript实现简单的二级联动
2015/03/19 Javascript
JavaScript表格常用操作方法汇总
2015/04/15 Javascript
javascript实现炫酷的拖动分页
2015/05/11 Javascript
在Javascript中处理数组之toSource()方法的使用
2015/06/09 Javascript
jQuery实现径向动画菜单效果
2015/07/17 Javascript
总结JavaScript的正则与其他语言的不同之处
2016/08/25 Javascript
JavaScript实现自定义媒体播放器方法介绍
2017/01/03 Javascript
JS正则表达式验证中文字符
2017/05/08 Javascript
关于Vue单页面骨架屏实践记录
2017/12/13 Javascript
vue微信分享出来的链接点开是首页问题的解决方法
2018/11/28 Javascript
微信小程序入门之广告条实现方法示例
2018/12/05 Javascript
基于three.js实现的3D粒子动效实例代码
2019/04/09 Javascript
微信小程序基于movable-view实现滑动删除效果
2020/01/08 Javascript
[02:25]专访DOTA2负责人Erik 国际邀请赛暂不会离开西雅
2014/07/21 DOTA
[00:03]DOTA2新版本PA至宝展示
2014/11/19 DOTA
Python的爬虫包Beautiful Soup中用正则表达式来搜索
2016/01/20 Python
总结python实现父类调用两种方法的不同
2017/01/15 Python
python实现rsa加密实例详解
2017/07/19 Python
Python实现PS图像抽象画风效果的方法
2018/01/23 Python
python之pandas用法大全
2018/03/13 Python
Ubuntu下使用python读取doc和docx文档的内容方法
2018/05/08 Python
python将三维数组展开成二维数组的实现
2019/11/30 Python
浅谈Python中文件夹和python package包的区别
2020/06/01 Python
办理信用卡工作证明
2014/01/11 职场文书
网吧消防安全制度
2014/01/28 职场文书
调解员先进事迹材料
2014/02/07 职场文书
网络技术专业求职信
2014/05/02 职场文书
董事长秘书工作职责
2014/06/10 职场文书
会议主持人开场白台词
2015/05/28 职场文书
英语读书笔记
2015/07/02 职场文书
二手手机买卖合同范本(2019年版)
2019/10/28 职场文书