使用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的闭包和装饰器
Feb 26 Python
Python3学习urllib的使用方法示例
Nov 29 Python
Python使用POP3和SMTP协议收发邮件的示例代码
Apr 16 Python
Django 过滤器汇总及自定义过滤器使用详解
Jul 19 Python
解决tensorboard多个events文件显示紊乱的问题
Feb 15 Python
python开发实例之python使用Websocket库开发简单聊天工具实例详解(python+Websocket+JS)
Mar 18 Python
基于Django OneToOneField和ForeignKey的区别详解
Mar 30 Python
keras绘制acc和loss曲线图实例
Jun 15 Python
python利用faker库批量生成测试数据
Oct 15 Python
python使用tkinter实现透明窗体上绘制随机出现的小球(实例代码)
May 17 Python
使用python向MongoDB插入时间字段的操作
May 18 Python
Python 键盘事件详解
Nov 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
域名和cookie问题(域名后缀)
2012/10/10 PHP
UPUPW 更新 64 位 Apache 系列 PHP 7.0 正式版
2015/12/08 PHP
PHPExcel中文帮助手册|PHPExcel使用方法(分享)
2017/06/09 PHP
详解PHP函数 strip_tags 处理字符串缺陷bug
2017/06/11 PHP
Laravel路由研究之domain解决多域名问题的方法示例
2019/04/04 PHP
jQuery 入门级学习笔记及源码
2010/01/22 Javascript
JavaScript面向对象(极简主义法minimalist approach)
2012/07/17 Javascript
js中键盘事件实例简析
2015/01/10 Javascript
jQuery Html控件基本操作(日常收集整理)
2016/03/11 Javascript
JS实现添加,替换,删除节点元素的方法
2016/06/30 Javascript
微信小程序 实战程序简易新闻的制作
2017/01/09 Javascript
从零开始最小实现react服务器渲染详解
2018/01/26 Javascript
p5.js入门教程之平滑过渡(Easing)
2018/03/16 Javascript
关于RxJS Subject的学习笔记
2018/12/05 Javascript
JSON字符串操作移除空串更改key/value的介绍
2019/01/05 Javascript
layui 上传图片 返回图片地址的方法
2019/09/26 Javascript
微信小程序利用for循环解决内容变更问题
2020/03/05 Javascript
vue+iview实现分页及查询功能
2020/11/17 Vue.js
vue在图片上传的时候压缩图片
2020/11/18 Vue.js
vue el-upload上传文件的示例代码
2020/12/21 Vue.js
vue3自定义dialog、modal组件的方法
2021/01/04 Vue.js
Python爬虫框架Scrapy安装使用步骤
2014/04/01 Python
python fabric使用笔记
2015/05/09 Python
详解Python的Django框架中的模版相关知识
2015/07/15 Python
Python整型运算之布尔型、标准整型、长整型操作示例
2017/07/21 Python
Python 做曲线拟合和求积分的方法
2018/12/29 Python
Python实现的调用C语言函数功能简单实例
2019/03/13 Python
Pandas读写CSV文件的方法示例
2019/03/27 Python
python tkinter的消息框模块(messagebox,simpledialog)
2020/11/07 Python
Python基于argparse与ConfigParser库进行入参解析与ini parser
2021/02/02 Python
移动端解决悬浮层(悬浮header、footer)会遮挡住内容的3种方法
2015/03/27 HTML / CSS
纽约的奢华内衣店:Journelle
2016/07/29 全球购物
吉列剃须刀英国官网:Gillette英国
2019/03/28 全球购物
美国校服网上商店:French Toast
2019/10/08 全球购物
运动会开幕式致辞
2015/07/29 职场文书
Python 如何利用ffmpeg 处理视频素材
2021/11/27 Python