使用Python构造hive insert语句说明


Posted in Python onJune 06, 2020

mysql可以使用nevicat导出insert语句用于数据构造,但是hive无法直接导出insert语句。我们可以先打印在hive命令行,然后使用脚本拼装成insert语句,进行数据构造。

使用Python构造hive insert语句说明

手动copy到python脚本进行sql语句构造:

def transformString(s):  list_s = s.split('\t')  print(len(list_s))  s_new = ''  for item in list_s:    s_new += '\"' + item.strip(' ') + '\"' + ','  return str(s_new.rstrip(','))# 为手动copy hive命令行打印输出的记录s = "555 helloworld"s_new = transformString(s)sql = 'insert into dw.test PARTITION (ymd = \'2019-03-18\') values({});'.format(s_new)print(sql)

结果:

insert into dw.test PARTITION (ymd = '2019-03-18') values("555","helloworld");

补充知识:python向hive插入数据遇到的坑

因项目需求,应用python建模需要通过hive取数,并将结果写入hive表。

尝试了以下几条坑爹路,仅做记录如下:

通过impyla库搭建hive与python桥梁

1.1 环境配置的坑(回头放连接)

注: 远程访问hive一定要记得配置账号密码!!!报错:。。。-4.。。

1.2 一定不要用impyla中的executemany去批量插入数据,也不要用其他的方式向hive插入数据,都是坑!奇慢无比!找资料也都是说不建议这么做。

长途跋涉hdfs法

2.1 先用python的pyhdfs库将结果写成hdfs文件,然后。。。尼玛!!根本没成功连上服务器的hdfs,本地hdfs到是可以的

2.2 那既然写hdfs,我就直接将模型结果通过hadoop/hdfs命令上传至hdfs。然后, 通过hive命令load data将hdfs中的结果再导入hive。虽然有点绕,但是成功了!!!BUT!!!小兄弟,这个直接操作HDFS风险太高了,要不你还是另寻他法吧,不可以拒绝哦!!!

2.3 好吧,根据建议,使用kafka,抱歉这个坑后面再来踩。

2.4 临时处理方案:先将结果写入mysql,再转入hive,这个没有坑,具体我也只是写到mysql,无坑。。就是有点绕。。。

以上这篇使用Python构造hive insert语句说明就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
数据挖掘之Apriori算法详解和Python实现代码分享
Nov 07 Python
深入理解Python中命名空间的查找规则LEGB
Aug 06 Python
Python2.7基于淘宝接口获取IP地址所在地理位置的方法【测试可用】
Jun 07 Python
浅谈Python中range和xrange的区别
Dec 20 Python
Pandas读取MySQL数据到DataFrame的方法
Jul 25 Python
用Python识别人脸,人种等各种信息
Jul 15 Python
python实现简易学生信息管理系统
Apr 05 Python
基于Python正确读取资源文件
Sep 14 Python
浅析pandas随机排列与随机抽样
Jan 22 Python
全网最详细的PyCharm+Anaconda的安装过程图解
Jan 25 Python
解决pytorch读取自制数据集出现过的问题
May 31 Python
详解Python生成器和基于生成器的协程
Jun 03 Python
Python通过kerberos安全认证操作kafka方式
Jun 06 #Python
pandas分批读取大数据集教程
Jun 06 #Python
python使用hdfs3模块对hdfs进行操作详解
Jun 06 #Python
python3.6.5基于kerberos认证的hive和hdfs连接调用方式
Jun 06 #Python
python访问hdfs的操作
Jun 06 #Python
Python API 操作Hadoop hdfs详解
Jun 06 #Python
python读取hdfs上的parquet文件方式
Jun 06 #Python
You might like
《破坏领主》销量已超100万 未来将继续开发新内容
2020/03/08 其他游戏
在PHP中执行系统外部命令
2006/10/09 PHP
php源码分析之DZX1.5加密解密函数authcode用法
2015/06/17 PHP
PHP表单验证内容是否为空的实现代码
2016/11/14 PHP
php计算多个集合的笛卡尔积实例详解
2017/02/16 PHP
PHP实现动态删除XML数据的方法示例
2018/03/30 PHP
javascript编程起步(第七课)
2007/01/10 Javascript
javascript制作游戏开发碰撞检测的封装代码
2015/03/31 Javascript
vue.js事件处理器是什么
2017/03/20 Javascript
JavaScript实现微信号随机切换代码
2018/03/09 Javascript
使用javascript函数编写简单银行取钱存钱流程
2018/05/26 Javascript
基于Angularjs-router动态改变Title值的问题
2018/08/30 Javascript
vue完成项目后,打包成静态文件的方法
2018/09/03 Javascript
vue实现双向绑定和依赖收集遇到的坑
2018/11/29 Javascript
微信小程序实现图片滚动效果示例
2018/12/05 Javascript
Vue动态路由缓存不相互影响的解决办法
2019/02/19 Javascript
nginx部署多个vue项目的方法示例
2020/09/06 Javascript
[01:46]TI4西雅图DOTA2前线报道 中国选手抱团调时差
2014/07/08 DOTA
pip 错误unused-command-line-argument-hard-error-in-future解决办法
2014/06/01 Python
python显示生日是星期几的方法
2015/05/27 Python
Python lambda函数基本用法实例分析
2018/03/16 Python
对Python 文件夹遍历和文件查找的实例讲解
2018/04/26 Python
pandas 数据归一化以及行删除例程的方法
2018/11/10 Python
Python格式化字符串f-string概览(小结)
2019/06/18 Python
python实现从wind导入数据
2019/12/03 Python
详解python安装matplotlib库三种失败情况
2020/07/28 Python
html5各种页面切换效果和模态对话框用法总结
2014/12/15 HTML / CSS
使用HTML5的表单验证的简单示例
2015/09/09 HTML / CSS
英国领先的名牌服装折扣零售商:Brown Bag Clothing
2019/01/08 全球购物
Levi’s西班牙官方网站:李维斯,著名的牛仔裤品牌
2020/08/20 全球购物
岗位说明书怎么写
2014/07/30 职场文书
缅怀先烈演讲稿
2014/09/03 职场文书
搞笑结婚保证书
2015/05/08 职场文书
参加招聘会后的感想
2015/08/10 职场文书
《打电话》教学反思
2016/02/22 职场文书
MySQL 数据 data 基本操作
2022/05/04 MySQL