使用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通过scapy获取局域网所有主机mac地址示例
May 04 Python
Python request设置HTTPS代理代码解析
Feb 12 Python
Python socket实现简单聊天室
Apr 01 Python
python自动截取需要区域,进行图像识别的方法
May 17 Python
tensorflow: 查看 tensor详细数值方法
Jun 13 Python
Python开发最牛逼的IDE——pycharm
Aug 01 Python
对Pandas MultiIndex(多重索引)详解
Nov 16 Python
python twilio模块实现发送手机短信功能
Aug 02 Python
python将四元数变换为旋转矩阵的实例
Dec 04 Python
Django框架教程之中间件MiddleWare浅析
Dec 29 Python
django 解决model中类写不到数据库中,数据库无此字段的问题
May 20 Python
Python包argparse模块常用方法
Jun 04 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 数组的合并、拆分、区别取值函数集
2010/02/15 PHP
php 广告调用类代码(支持Flash调用)
2011/08/11 PHP
Zend Framework框架Smarty扩展实现方法
2016/03/22 PHP
PHP重定向与伪静态区别
2017/02/19 PHP
PHP实现单条sql执行多个数据的insert语句方法
2019/10/11 PHP
JavaScript 原型继承之构造函数继承
2011/08/26 Javascript
JavaScript转换农历类实现及调用方法
2013/01/27 Javascript
Javascript 学习笔记之 对象篇(二) : 原型对象
2014/06/24 Javascript
吐槽一下我所了解的Node.js
2014/10/08 Javascript
javascript跨域原因以及解决方案分享
2015/04/08 Javascript
浅谈JavaScript异常处理语句
2015/06/26 Javascript
jQuery中$this和$(this)的区别介绍(一看就懂)
2015/07/06 Javascript
ionic js 复选框 与普通的 HTML 复选框到底有没区别
2016/06/06 Javascript
javascript url几种编码方式详解
2016/06/06 Javascript
plupload+artdialog实现多平台上传文件
2016/07/19 Javascript
基于cssSlidy.js插件实现响应式手机图片轮播效果
2016/08/30 Javascript
ReactNative页面跳转实例代码
2016/09/27 Javascript
vue插件tab选项卡使用小结
2016/10/27 Javascript
两种简单的跨域方法(jsonp、php)
2017/01/02 Javascript
jquery+ajax实现省市区三级联动效果简单示例
2017/01/04 Javascript
JavaScript中运算符规则和隐式类型转换示例详解
2017/09/06 Javascript
详解koa2学习中使用 async 、await、promise解决异步的问题
2018/11/13 Javascript
layer.open的自适应及居中及子页面标题的修改方法
2019/09/05 Javascript
python实现同时给多个变量赋值的方法
2015/04/30 Python
记一次python 内存泄漏问题及解决过程
2018/11/29 Python
Python一行代码解决矩阵旋转的问题
2019/11/30 Python
TensorFlow 显存使用机制详解
2020/02/03 Python
浅谈python的elementtree模块处理中文注意事项
2020/03/06 Python
HTML5 b和i标记将被赋予真正的语义
2009/07/16 HTML / CSS
谷歌浏览器小字体处理方案即12px以下字体
2013/12/17 HTML / CSS
ASICS印度官方网站:日本专业运动品牌
2020/06/20 全球购物
工程概预算专业毕业生求职信
2013/10/04 职场文书
岗位职责的定义
2013/11/10 职场文书
企业宣传方案
2014/03/04 职场文书
党员自我剖析材料(群众路线)
2014/10/06 职场文书
工厂无线对讲系统解决方案
2022/02/18 无线电