使用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刷投票的脚本实现代码
Nov 08 Python
Python发送以整个文件夹的内容为附件的邮件的教程
May 06 Python
python提取字典key列表的方法
Jul 11 Python
举例讲解Python面向对象编程中类的继承
Jun 17 Python
浅谈python对象数据的读写权限
Sep 12 Python
网站渗透常用Python小脚本查询同ip网站
May 08 Python
django认证系统实现自定义权限管理的方法
Jul 16 Python
python判断一个数是否能被另一个整数整除的实例
Dec 12 Python
基于python+selenium的二次封装的实现
Jan 06 Python
通过实例解析Python RPC实现原理及方法
Jul 07 Python
python自然语言处理之字典树知识总结
Apr 25 Python
教你用Python matplotlib库制作简单的动画
Jun 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
2020年4月新番动漫目录 官方宣布4月播出的作品一览
2020/03/08 日漫
PHP自动生成缩略图函数的源码示例
2019/03/18 PHP
JavaScript XML操作 封装类
2009/07/01 Javascript
JSONObject使用方法详解
2015/12/17 Javascript
详解JavaScript 中的 replace 方法
2016/01/01 Javascript
小心!AngularJS结合RequireJS做文件合并压缩的那些坑
2016/01/09 Javascript
jQuery实现的分页功能示例
2017/01/22 Javascript
浅谈js中同名函数和同名变量的执行问题
2017/02/12 Javascript
vue.js加载新的内容(实例代码)
2017/06/01 Javascript
AngularJS自定义过滤器用法经典实例总结
2018/05/17 Javascript
Vue项目添加动态浏览器头部title的方法
2018/07/11 Javascript
vue.js2.0 实现better-scroll的滚动效果实例详解
2018/08/13 Javascript
浅谈微信JS-SDK 微信分享接口开发(介绍版)
2018/08/15 Javascript
解决vue2.0 element-ui中el-upload的before-upload方法返回false时submit()不生效问题
2018/08/24 Javascript
layui实现给某一列加点击事件
2019/10/26 Javascript
关于vue组件事件属性穿透详解
2019/10/28 Javascript
vuex刷新后数据丢失的解决方法
2020/10/18 Javascript
python中import reload __import__的区别详解
2017/10/16 Python
python的scikit-learn将特征转成one-hot特征的方法
2018/07/10 Python
Python 保存矩阵为Excel的实现方法
2019/01/28 Python
详解Python 函数如何重载?
2019/04/23 Python
使用Python创建简单的HTTP服务器的方法步骤
2019/04/26 Python
Django工程的分层结构详解
2019/07/18 Python
python对一个数向上取整的实例方法
2020/06/18 Python
HTML5如何实现元素拖拽
2016/03/11 HTML / CSS
html5声频audio和视频video等新特性详细说明
2012/12/26 HTML / CSS
基于HTML5+Webkit实现树叶飘落动画
2017/12/28 HTML / CSS
澳大利亚当地最大的时装生产商:Cue
2018/08/06 全球购物
党委书记岗位职责
2013/11/24 职场文书
三八妇女节演讲稿
2014/05/27 职场文书
2014年社区工作总结
2014/11/18 职场文书
2014保险公司内勤工作总结
2014/12/16 职场文书
2014年学生党支部工作总结
2014/12/20 职场文书
2015年妇幼保健工作总结
2015/05/19 职场文书
Python字符串对齐方法使用(ljust()、rjust()和center())
2021/04/26 Python
Python内置类型集合set和frozenset的使用详解
2022/04/26 Python