使用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创建只读属性对象的方法(ReadOnlyObject)
Feb 10 Python
Python中实现字符串类型与字典类型相互转换的方法
Aug 18 Python
Python网络爬虫实例讲解
Apr 28 Python
SELENIUM自动化模拟键盘快捷键操作实现解析
Oct 28 Python
基于python监控程序是否关闭
Jan 14 Python
python_mask_array的用法
Feb 18 Python
Python验证码截取识别代码实例
May 16 Python
Python建造者模式案例运行原理解析
Jun 29 Python
python中如何写类
Jun 29 Python
如何验证python安装成功
Jul 06 Python
如何基于Python和Flask编写Prometheus监控
Nov 25 Python
python 自动化偷懒的四个实用操作
Apr 11 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中static静态变量的使用方法详解
2010/06/04 PHP
zend api扩展的php对象的autoload工具
2011/04/18 PHP
PHP分页详细讲解(有实例)
2013/10/30 PHP
PHP获取用户访问IP地址的5种方法
2016/05/16 PHP
Yii框架弹出窗口组件CJuiDialog用法分析
2017/01/07 PHP
php从数据库读取数据,并以json格式返回数据的方法
2018/08/21 PHP
使用apply方法处理数组的三个技巧[译]
2012/09/20 Javascript
利用js实现选项卡的特别效果的实例
2013/03/03 Javascript
5款JavaScript代码压缩工具推荐
2014/07/07 Javascript
Bootstrap每天必学之日期控制
2016/03/07 Javascript
js 点击a标签 获取a的自定义属性方法
2016/11/21 Javascript
AngularJS通过ng-route实现基本的路由功能实例详解
2016/12/13 Javascript
js实现仿购物车加减效果
2017/03/01 Javascript
Vue常用的几个指令附完整案例
2018/11/06 Javascript
原生js实现ajax请求和JSONP跨域请求操作示例
2020/03/14 Javascript
[00:23]DOTA2群星共贺开放测试 25日无码时代来袭
2013/09/23 DOTA
Python压缩和解压缩zip文件
2015/02/14 Python
在Python程序中操作文件之isatty()方法的使用教程
2015/05/24 Python
Python温度转换实例分析
2018/01/17 Python
python合并同类型excel表格的方法
2018/04/01 Python
python 通过 socket 发送文件的实例代码
2018/08/14 Python
浅析python中的迭代与迭代对象
2018/10/08 Python
python 对字典按照value进行排序的方法
2019/05/09 Python
HTML的form表单和django的form表单
2019/07/25 Python
Python树莓派学习笔记之UDP传输视频帧操作详解
2019/11/15 Python
Linux安装Python3如何和系统自带的Python2并存
2020/07/23 Python
python判断all函数输出结果是否为true的方法
2020/12/03 Python
StubHub西班牙:购买和出售全球活动门票
2017/06/05 全球购物
物流专业大学生的自我鉴定
2013/11/13 职场文书
公司前台接待岗位职责
2013/12/03 职场文书
国际经济与贸易专业大学生职业规划书
2014/03/01 职场文书
大学第二课堂活动总结
2014/07/08 职场文书
出国签证在职证明范本
2014/11/24 职场文书
品质保证书格式
2015/02/28 职场文书
试用期转正工作总结2015
2015/05/28 职场文书
关于艺术节的开幕致辞
2016/03/04 职场文书