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.运行结果

相关文章:
python--将mysql建表语句转换成hive建表语句
1.代码 import json import sys import pymysqldef queryDataBase(tablename):# 连接数据库并查询列信息conn pymysql.connect(userroot, password123456, hosthadoop11)cursor conn.cursor()cursor.execute("SELECT column_name, data_type FROM information_schema.C…...
异步调用实践:Async,Future, TaskExecutor、EventListener
1. 异步调用概述 异步调用允许一个方法调用在不被当前线程阻塞的情况下继续执行,而调用者可以继续执行其他任务,直到异步操作完成。 在Spring Boot中,异步调用常用于提高应用的响应性和吞吐量,尤其是在处理长时间运行的任务时&a…...
Flask 异常处理
Flask 异常处理 使用 app.errorhandler 装饰器使用 app.handle_exception 装饰器使用 register_error_handler调试模式总结 在 Flask 应用中,异常处理是一个非常重要的部分,它可以帮助你管理运行时错误,提供友好的错误页面,以及记…...
【海思SS626 | 内存管理】海思芯片的OS内存、MMZ内存设置
😁博客主页😁:🚀https://blog.csdn.net/wkd_007🚀 🤑博客内容🤑:🍭嵌入式开发、Linux、C语言、C、数据结构、音视频🍭 🤣本文内容🤣&a…...
linux crontab没有按照规则执行排查
配置了cron规则,但是一段时间后任务没有按预期执行,记录一次修复过程 检查crond服务 systemctl status crond规则正常 crontab -l脚本有执行权限 查看日志 第一种:journalctl journalctl -u crond | grep 03:00 -C 3-u 指定crond.serv…...
Cloudflare的D1使用技巧
总文档:https://developers.cloudflare.com/workers/wrangler/commands/#d1查询某个数据库中哪些命令占用资源最大: To find top 10 queries by execution count: npx wrangler d1 insights <database_name> --sort-typesum --sort-bycount --co…...
解决端口号被占用问题
第一种: 最简单有效的方法,重启一下电脑,占用此端口的程序就会释放端口。 第二种: 使用命令找到占用端口的程序,把它关闭。 1、打开运行窗口输入:CMD ,进入命令窗口。 2、输入:n…...
如何在linux上部署zabbix监控工具
<1>搭建服务机 1)首先我们先执行 sed -i s/SELINUXenforcing/SELINUXdisabled/ /etc/selinux/config #然后我们再把防火墙开机自启关掉 马上生效 systemctl disable --now firewalld 2)我们获得rpm包 rpm -Uvh https://mirrors.aliyun.com/…...
vulnhub系列:sp eric
vulnhub系列:sp eric 靶机下载 一、信息收集 nmap扫描存活,根据mac地址寻找IP nmap 192.168.23.0/24nmap扫描端口,开放端口:22、80 nmap 192.168.23.189 -p- -A -sV -Pndirb 扫描目录,.git 源码,admin…...
JVM二:JVM类加载机制
目录 前言 1.什么是类加载? 2.类加载整体流程 3.一个类什么时候被加载? 4.双亲委派模型 4.1 JVM默认提供了三个类加载器 4.1.1 BootstrapClassLoader 4.1.2 ExtensionClassLoader 4.1.3 ApplicationClassLoader 4.2 破坏双亲委派模型 前言 在上一篇文章中…...
对于springboot无法连接redis解决方案
对于springboot无法连接redis解决方案 一、测试是否能在本地应用上访问到你的redis(如果是部署在linux上的话)1. 开启telnet功能2. 开始测试端口是否能访问到(适用于所有,包括MQ)3. 开放6379端口4. 看spring的配置文件…...
关于android中的各种尺寸与计算
--张学友《心如刀割》很好听 先说几个术语: Screen size(屏幕尺寸): 指的是手机实际的物理尺寸,比如常用的2.8英寸,3.2英寸,3.5英寸,3.7英寸 摩托罗拉milestone手机是3.7英寸 Aspect Ratio(宽高比率)&am…...
MySQL避免索引失效的方法详细介绍
避免索引失效 在MySQL中,索引是帮助MySQL高效获取数据的数据结构。它就像一本书的目录,通过索引可以快速定位到数据的具体位置,从而减少对数据库的扫描量,提高查询速度。索引可以存储在表中的一个或多个列上,创建索引…...
【Java】深入了解 Java 的 charAt() 方法
我最爱的那首歌最爱的angel 我到什么时候才能遇见我的angel 我最爱的那首歌最爱的angel 我不是王子也会拥有我的angel 🎵 张杰《云中的angel》 在 Java 编程中,字符串(String)是我们经常处理的数据类型之一。…...
Linux 下 ETCD 安装、配置与命令使用总结
大家好,我是程序员小羊! 前言: Linux 下 ETCD 安装、配置与命令使用总结 ETCD 是一个分布式键值存储系统,广泛用于服务发现、分布式锁、配置管理等场景,特别是在 Kubernetes 集群中发挥着至关重要的作用。ETCD 的高…...
C++笔试练习笔记【7】:力扣 91. 解码方法 动态规划练习
文章目录 题目题目分析思路解法正常解法优化解法 题目 题目链接:力扣 91. 解码方法 备用链接:https://leetcode.cn/problems/decode-ways/description/ 题目分析 1.首先我们知道题目给定A~Z编码为1 ~26 ,而数字十一字符串的形式给出所以…...
【antd】antd3的表单校验不提示报错信息
描述 不是网上所谓的自定义校验方法的问题。 今天在写一个antd3的业务的时候,封装一个组件,把校验和请求事件放在一个方法里面,用回调或者promise进行异步处理。 发现原因是在校验错误的判断,进行callback之后,页面…...
Game AI ——游戏人工智能(逻辑及剧情生成)
一、Game AI 的介绍 "Game AI"(游戏人工智能)通常指的是在电子游戏中使用的各种人工智能技术和算法,用于控制游戏中的非玩家角色(NPC)、敌人、队友等,以及为玩家提供有挑战性的对手或有趣的互动…...
算法基础知识——核函数
简介:个人学习分享,如有错误,欢迎批评指正 核函数(Kernel Function)是机器学习中一种重要的工具,特别是在支持向量机(SVM)、核岭回归、核主成分分析(KPCA)等核…...
安卓xml乱码/加密转换:abx2xml和xml2abx使用及源码介绍
背景: 上一篇文章 android系统中data下的xml乱码无法查看问题剖析及解决方法 发布后,想要寻找一个可以直接把二进制xml和普通xml进行相互转换的,当时还写了相关的方案,但是当时没有找到现成的开源工具,后来经过相关粉…...
AutoMdxBuilder: 零基础高效制作专业MDX词典的自动化解决方案
AutoMdxBuilder: 零基础高效制作专业MDX词典的自动化解决方案 【免费下载链接】AutoMdxBuilder Automatically make mdx dictionaries 项目地址: https://gitcode.com/gh_mirrors/au/AutoMdxBuilder 当语言教师李老师第三次因为图片路径错误导致MDX词典(一种…...
DeepAnalyze模型量化部署实战:减小50%显存占用
DeepAnalyze模型量化部署实战:减小50%显存占用 1. 引言 你是不是遇到过这样的情况:好不容易找到一个强大的AI模型,比如最近很火的DeepAnalyze数据分析大模型,结果发现自己的显卡根本跑不起来?8GB显存的消费级显卡只能…...
5分钟实现零代码GUI开发!ImStudio让Dear ImGui界面设计效率倍增
5分钟实现零代码GUI开发!ImStudio让Dear ImGui界面设计效率倍增 【免费下载链接】ImStudio GUI layout designer for Dear ImGui 项目地址: https://gitcode.com/gh_mirrors/im/ImStudio 作为开发者,你是否曾为编写GUI界面而头疼?是否…...
微信数据解密技术解析:从原理到实战的完整指南
微信数据解密技术解析:从原理到实战的完整指南 【免费下载链接】PyWxDump 删库 项目地址: https://gitcode.com/GitHub_Trending/py/PyWxDump 在数字化时代,个人数据管理变得愈发重要。微信作为主流社交平台,其加密存储的数据给合法备…...
效率提升利器:用快马AI生成批量域名健康检查工具,告别手动刷新
效率提升利器:用快马AI生成批量域名健康检查工具,告别手动刷新 作为开发者或运维人员,我们经常需要监控一批服务域名的健康状态。比如最近公司新上线了一批jxx相关的域名,需要定期检查它们的可用性和响应速度。传统的手动刷新浏览…...
如何高效一键完整导出QQ空间历史说说:GetQzonehistory专业指南
如何高效一键完整导出QQ空间历史说说:GetQzonehistory专业指南 【免费下载链接】GetQzonehistory 获取QQ空间发布的历史说说 项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory GetQzonehistory是一款专业的开源工具,专门用于自…...
FUTURE POLICE模型资源监控与告警:保障生产环境稳定运行
FUTURE POLICE模型资源监控与告警:保障生产环境稳定运行 部署好一个像FUTURE POLICE这样的大模型,只是第一步。真正考验人的,是让它能7x24小时稳定、可靠地跑在生产环境里。想象一下,半夜三更,你的模型服务突然因为显…...
PyTorch 2.8镜像智能助手:科研人员用预装Jupyter+Pandas快速分析训练指标
PyTorch 2.8镜像智能助手:科研人员用预装JupyterPandas快速分析训练指标 1. 为什么科研人员需要这个镜像 深度学习研究中最耗时的往往不是算法设计,而是环境配置和数据准备。传统开发流程中,研究人员需要花费大量时间在: 安装C…...
剧本杀教程生成指南2025,解析,轻松掌握创作技巧
剧本杀教程生成指南2025,解析,轻松掌握创作技巧剧本杀作为一种新兴的娱乐方式,近年来在全球范围内迅速流行。随着越来越多的人加入到剧本杀的创作和体验中,如何高效地创作出高质量的剧本成为了一个热门话题。本文将为你提供一份详…...
极简配置:OpenClaw快速接入Phi-3-mini-128k-instruct的HTTP接口
极简配置:OpenClaw快速接入Phi-3-mini-128k-instruct的HTTP接口 1. 为什么选择Phi-3-mini-128k-instruct 上周我在调试一个自动化文档处理流程时,发现现有的大模型响应速度跟不上我的实时需求。经过几轮测试,最终选择了微软开源的Phi-3-min…...
