使用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 相关文章推荐
Python操作Mysql实例代码教程在线版(查询手册)
Feb 18 Python
简单的抓取淘宝图片的Python爬虫
Dec 25 Python
python使用in操作符时元组和数组的区别分析
May 19 Python
Ubuntu16.04/树莓派Python3+opencv配置教程(分享)
Apr 02 Python
Python利用正则表达式实现计算器算法思路解析
Apr 25 Python
python 定时器,实现每天凌晨3点执行的方法
Feb 20 Python
Python转换时间的图文方法
Jul 01 Python
利用Python小工具实现3秒钟将视频转换为音频
Oct 29 Python
Python文字截图识别OCR工具实例解析
Mar 05 Python
Python unittest单元测试openpyxl实现过程解析
May 27 Python
django template实现定义临时变量,自定义赋值、自增实例
Jul 12 Python
聊聊基于pytorch实现Resnet对本地数据集的训练问题
Mar 25 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 UTF-8、Unicode和BOM问题
2010/05/18 PHP
如何用phpmyadmin设置mysql数据库用户的权限
2012/01/09 PHP
ThinkPHP之M方法实例详解
2014/06/20 PHP
PHP实现打包下载文件的方法示例
2017/10/07 PHP
php 替换文章中的图片路径,下载图片到本地服务器的方法
2018/02/06 PHP
php empty 函数判断结果为空但实际值却为非空的原因解析
2018/05/28 PHP
改善你的jQuery的25个步骤 千倍级效率提升
2010/02/11 Javascript
JavaScript对象、属性、事件手册集合方便查询
2010/07/04 Javascript
jquery+ajax验证不通过也提交表单问题处理
2014/12/12 Javascript
通过点击jqgrid表格弹出需要的表格数据
2015/12/02 Javascript
jQuery zTree加载树形菜单功能
2016/02/25 Javascript
Reactjs实现通用分页组件的实例代码
2017/01/19 Javascript
原生js实现可拖动的登录框效果
2017/01/21 Javascript
浅谈js基础数据类型和引用类型,深浅拷贝问题,以及内存分配问题
2017/09/02 Javascript
vue.js 实现评价五角星组件的实例代码
2018/08/13 Javascript
微信小程序tabBar设置实例解析
2019/11/14 Javascript
详解JS深拷贝与浅拷贝
2020/08/04 Javascript
解决VUE 在IE下出现ReferenceError: Promise未定义的问题
2020/11/07 Javascript
python编写网页爬虫脚本并实现APScheduler调度
2014/07/28 Python
python字符串连接的N种方式总结
2014/09/17 Python
跟老齐学Python之正规地说一句话
2014/09/28 Python
Python 基础知识之字符串处理
2017/01/06 Python
python调用java的jar包方法
2018/12/15 Python
实例详解Python模块decimal
2019/06/26 Python
Numpy对数组的操作:创建、变形(升降维等)、计算、取值、复制、分割、合并
2019/08/28 Python
python实现高斯投影正反算方式
2020/01/17 Python
10种CSS3实现的loading动画,挑一个走吧?
2020/11/16 HTML / CSS
html5+css如何实现中间大两头小的轮播效果
2018/12/06 HTML / CSS
凌阳科技股份有限公司C++程序员面试题笔试题
2014/11/20 面试题
后勤人员自我评价怎么写
2013/09/19 职场文书
销售高级职员求职信
2013/10/29 职场文书
新闻传媒系求职信范文
2014/04/19 职场文书
国际贸易专业求职信
2014/06/04 职场文书
2019运动会广播加油稿汇总
2019/08/21 职场文书
Mongo服务重启异常问题的处理方法
2021/07/01 MongoDB
JavaScript圣杯布局与双飞翼布局实现案例详解
2022/08/05 Javascript