使用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 相关文章推荐
python2.7删除文件夹和删除文件代码实例
Dec 18 Python
pycharm远程调试openstack的图文教程
Nov 21 Python
Django数据库表反向生成实例解析
Feb 06 Python
python使用jieba实现中文分词去停用词方法示例
Mar 11 Python
对Python中Iterator和Iterable的区别详解
Oct 18 Python
对Python中plt的画图函数详解
Nov 07 Python
python事件驱动event实现详解
Nov 21 Python
python matplotlib画图库学习绘制常用的图
Mar 19 Python
python django生成迁移文件的实例
Aug 31 Python
Python注释、分支结构、循环结构、伪“选择结构”用法实例分析
Jan 09 Python
tensorflow入门:TFRecordDataset变长数据的batch读取详解
Jan 20 Python
python3检查字典传入函数键是否齐全的实例
Jun 05 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
php学习之流程控制实现代码
2011/06/09 PHP
PHP得到mssql的存储过程的输出参数功能实现
2012/11/23 PHP
深入Apache与Nginx的优缺点比较详解
2013/06/17 PHP
PHP 读取文本文件内容并分页显示
2016/01/02 PHP
[原创]解决wincache不支持64位PHP5.5/5.6的问题(提供64位wincache下载)
2016/06/22 PHP
PHP使用CURL实现下载文件功能示例
2019/06/03 PHP
phpinfo的知识点总结
2019/10/10 PHP
5款Javascript颜色选择器
2009/10/25 Javascript
基于jQuery的倒计时实现代码
2012/05/30 Javascript
当前流行的JavaScript代码风格指南
2014/09/10 Javascript
jquery实现的3D旋转木马特效代码分享
2015/08/25 Javascript
基于JavaScript实现div层跟随滚动条滑动
2016/01/12 Javascript
JS模拟简易滚动条效果代码(附demo源码)
2016/04/05 Javascript
第七篇Bootstrap表单布局实例代码详解(三种表单布局)
2016/06/21 Javascript
js操作XML文件的实现方法兼容IE与FireFox
2016/06/25 Javascript
解决nodejs的npm命令无反应的问题
2018/05/17 NodeJs
js+springMVC 提交数组数据到后台的实例
2019/09/21 Javascript
python基础教程之基本内置数据类型介绍
2014/02/20 Python
python实现在无须过多援引的情况下创建字典的方法
2014/09/25 Python
python中如何使用朴素贝叶斯算法
2017/04/06 Python
python+matplotlib绘制旋转椭圆实例代码
2018/01/12 Python
Flask框架通过Flask_login实现用户登录功能示例
2018/07/17 Python
PyQt弹出式对话框的常用方法及标准按钮类型
2019/02/27 Python
Python中面向对象你应该知道的一下知识
2019/07/10 Python
解决Jupyter notebook更换主题工具栏被隐藏及添加目录生成插件问题
2020/04/20 Python
Anaconda的安装及其环境变量的配置详解
2020/04/22 Python
keras中的History对象用法
2020/06/19 Python
如何基于python实现年会抽奖工具
2020/10/20 Python
移动端Html5页面生成图片解决方案
2018/08/07 HTML / CSS
Omio葡萄牙:全欧洲低价大巴、火车和航班搜索和比价
2019/02/09 全球购物
应届生求职信
2014/05/31 职场文书
2015年工会工作总结
2015/03/30 职场文书
邹越演讲观后感
2015/06/15 职场文书
家庭经济困难证明
2015/06/23 职场文书
三八妇女节致辞
2015/07/31 职场文书
乡镇司法所2015年度工作总结
2015/10/14 职场文书