当前位置: 首页 > news >正文

python--将mysql建表语句转换成hive建表语句

1.代码

import json
import sys
import pymysqldef queryDataBase(tablename):# 连接数据库并查询列信息conn = pymysql.connect(user='root', password='123456', host='hadoop11')cursor = conn.cursor()cursor.execute("SELECT column_name, data_type FROM information_schema.`COLUMNS` WHERE TABLE_SCHEMA = 'db1' AND table_name = %s ORDER BY ordinal_position",[tablename])fetchall = cursor.fetchall()cursor.close()conn.close()return fetchalldef getColumnAndType(tablename):# 查询数据库获取列名和类型k1 = queryDataBase(tablename)mappings = {'bigint': 'bigint','varchar': 'string','int': 'int','datetime': 'string','text': 'string','decimal': 'double','double': 'double','date': 'string','time': 'string','varbinary': 'string'}# 构造列定义字符串columns = '\n'.join([f"`{col[0]}` {mappings[col[1].lower()]+','}" for col in k1])columns = columns.rstrip(",")return columnsdef gen_hive(tablename):# 生成 Hive 建表语句columns = getColumnAndType(tablename)hive_sql = f"""  CREATE TABLE IF NOT EXISTS db1.{tablename} (  {columns}  )  ROW FORMAT DELIMITED  FIELDS TERMINATED BY '\\t'  STORED AS TEXTFILE;  """return hive_sqlif __name__ == '__main__':l = sys.argv[1:]if len(l) == 0:print(f'参数为空,请传递表名')else:tablename = l[0]hive_sql = gen_hive(tablename)print(hive_sql)

2.传入参数(表名) 

3.运行结果

http://www.lryc.cn/news/421562.html

相关文章:

  • 异步调用实践:Async,Future, TaskExecutor、EventListener
  • Flask 异常处理
  • 【海思SS626 | 内存管理】海思芯片的OS内存、MMZ内存设置
  • linux crontab没有按照规则执行排查
  • Cloudflare的D1使用技巧
  • 解决端口号被占用问题
  • 如何在linux上部署zabbix监控工具
  • vulnhub系列:sp eric
  • JVM二:JVM类加载机制
  • 对于springboot无法连接redis解决方案
  • 关于android中的各种尺寸与计算
  • MySQL避免索引失效的方法详细介绍
  • 【Java】深入了解 Java 的 charAt() 方法
  • Linux 下 ETCD 安装、配置与命令使用总结
  • C++笔试练习笔记【7】:力扣 91. 解码方法 动态规划练习
  • 【antd】antd3的表单校验不提示报错信息
  • Game AI ——游戏人工智能(逻辑及剧情生成)
  • 算法基础知识——核函数
  • 安卓xml乱码/加密转换:abx2xml和xml2abx使用及源码介绍
  • slice 截取
  • XReparentWindow踩坑分析
  • OpenAI动荡,将走向何方、GPT5或许将近、毒舌AI轻松破防网友、最新版 GPT-4o AI 模型得满分 | AGI视界周刊第 4 期
  • RCE---无字母数字webshell
  • 有意思的漏洞复现与分析一
  • 力扣题解(按身高排序)
  • Redis的六种淘汰策略详解
  • vue3中 ref 和 reactive 的区别
  • 《单例模式的深度解读:实现方式、破坏情况与利弊权衡》
  • 010607电压源和电流源受控源
  • 快乐数求解