使用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中的多线程编程
Apr 09 Python
python实现计算倒数的方法
Jul 11 Python
Python中二维列表如何获取子区域元素的组成
Jan 19 Python
Python3多线程操作简单示例
May 22 Python
解决Mac安装scrapy失败的问题
Jun 13 Python
Python 生成 -1~1 之间的随机数矩阵方法
Aug 04 Python
使用python实现ftp的文件读写方法
Jul 02 Python
解决Python中报错TypeError: must be str, not bytes问题
Apr 07 Python
QML实现钟表效果
Jun 02 Python
解决PyCharm无法使用lxml库的问题(图解)
Dec 22 Python
selenium+headless chrome爬虫的实现示例
Jan 08 Python
Python字符串常规操作小结
Apr 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
浅析php插件 Simple HTML DOM 用DOM方式处理HTML
2013/07/01 PHP
Laravel5.5 动态切换多语言的操作方式
2019/10/25 PHP
javascript 全等号运算符使用说明
2010/05/31 Javascript
什么是DOM(Document Object Model)文档对象模型
2012/03/05 Javascript
给artDialog 5.02 增加ajax get功能详细介绍
2012/11/13 Javascript
JavaScript File API实现文件上传预览
2016/02/02 Javascript
微信公众平台开发教程(六)获取个性二维码的实例
2016/12/02 Javascript
利用jQuery插件imgAreaSelect实现图片上传裁剪(放大缩小)
2016/12/02 Javascript
js数组去重的hash方法
2016/12/22 Javascript
从零开始做一个pagination分页组件
2017/03/15 Javascript
js匿名函数使用&传参(实例)
2017/09/08 Javascript
Three.js实现浏览器变动时进行自适应的方法
2017/09/26 Javascript
vue--vuex详解
2019/04/15 Javascript
js实现随机点名程序
2020/09/17 Javascript
Vue filter 过滤当前时间 实现实时更新效果
2019/12/20 Javascript
基于elementUI竖向表格、和并列的案例
2020/10/26 Javascript
8个非常实用的Vue自定义指令
2020/12/15 Vue.js
Python中threading模块join函数用法实例分析
2015/06/04 Python
Python中的Descriptor描述符学习教程
2016/06/02 Python
Python迭代器与生成器用法实例分析
2018/07/09 Python
解决python测试opencv时imread导致的错误问题
2019/01/26 Python
python twilio模块实现发送手机短信功能
2019/08/02 Python
使用pygame编写Flappy bird小游戏
2020/03/14 Python
pycharm 对代码做静态检查操作
2020/06/09 Python
python文件编写好后如何实践
2020/07/07 Python
使用numpngw和matplotlib生成png动画的示例代码
2021/01/24 Python
CSS3,线性渐变(linear-gradient)的使用总结
2017/01/09 HTML / CSS
香港交友网站:be2香港
2018/07/22 全球购物
什么是唯一索引
2015/07/05 面试题
入党推优材料
2014/06/02 职场文书
学校与家长安全责任书
2014/07/23 职场文书
四风个人对照检查材料思想汇报(办公室通用版)
2014/10/07 职场文书
公务员政审材料范文
2014/12/23 职场文书
幼儿园中班班级总结
2015/08/10 职场文书
PL350与SW11的比较
2021/04/22 无线电
MySQL实现配置主从复制项目实践
2022/03/31 MySQL