使用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 22 Python
Python中的面向对象编程详解(下)
Apr 13 Python
Python实现的Google IP 可用性检测脚本
Apr 23 Python
详解在Python程序中使用Cookie的教程
Apr 30 Python
python 爬取微信文章
Jan 30 Python
在IPython中执行Python程序文件的示例
Nov 01 Python
对pandas中两种数据类型Series和DataFrame的区别详解
Nov 12 Python
pytorch实现MNIST手写体识别
Feb 14 Python
Python基于正则表达式实现计算器功能
Jul 13 Python
深入了解Python enumerate和zip
Jul 16 Python
matplotlib部件之矩形选区(RectangleSelector)的实现
Feb 01 Python
Pytorch数据读取之Dataset和DataLoader知识总结
May 23 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求两个文件的相对路径
2013/06/20 PHP
解决extjs在firefox中关闭窗口再打开后iframe中js函数访问不到的问题
2008/11/06 Javascript
指定位置如果有图片显示图片,无图片显示广告的JS
2010/06/05 Javascript
用js格式化金额可设置保留的小数位数
2014/05/09 Javascript
jquery动态改变form属性提交表单
2014/06/03 Javascript
浅谈EasyUI中编辑treegrid的方法
2015/03/01 Javascript
jquery实现鼠标滑过小图查看大图的方法
2015/07/20 Javascript
比例尺、缩略图、平移缩放之百度地图添加控件方法
2015/08/03 Javascript
Javascript中call,apply,bind方法的详解与总结
2016/12/12 Javascript
nodejs使用redis作为缓存介质实现的封装缓存类示例
2018/02/07 NodeJs
layUI实现前端分页和后端分页
2019/07/27 Javascript
jQuery实现移动端下拉展现新的内容回弹动画
2020/06/24 jQuery
区分vue-router的hash和history模式
2020/10/03 Javascript
[49:17]DOTA2-DPC中国联赛 正赛 Phoenix vs Dynasty BO3 第三场 1月26日
2021/03/11 DOTA
[03:02]2020完美世界城市挑战赛(秋季赛)总决赛回顾
2021/03/11 DOTA
在Python中使用Neo4j数据库的教程
2015/04/16 Python
python添加模块搜索路径方法
2017/09/11 Python
使用实现XlsxWriter创建Excel文件并编辑
2018/05/04 Python
Pandas之ReIndex重新索引的实现
2019/06/25 Python
详解Python 字符串相似性的几种度量方法
2019/08/29 Python
Python中使用gflags实例及原理解析
2019/12/13 Python
python GUI库图形界面开发之PyQt5单行文本框控件QLineEdit详细使用方法与实例
2020/02/27 Python
基于Keras中Conv1D和Conv2D的区别说明
2020/06/19 Python
如何利用python 读取配置文件
2021/01/06 Python
python 逆向爬虫正确调用 JAR 加密逻辑
2021/01/12 Python
详解background属性的8个属性值(面试题)
2020/11/02 HTML / CSS
美国Max仓库:Max Warehouse
2020/05/31 全球购物
C#中有没有运算符重载?能否使用指针?
2014/05/05 面试题
机电职业生涯规划书范文
2014/03/08 职场文书
教师应聘自荐信范文
2014/03/14 职场文书
支部组织生活会方案
2014/06/10 职场文书
学雷锋活动倡议书
2014/08/30 职场文书
孩子满月酒答谢词
2015/09/30 职场文书
2016年度基层党建工作公开承诺书
2016/03/25 职场文书
Mysql中存储引擎的区别及比较
2021/06/04 MySQL
Python采集股票数据并制作可视化柱状图
2022/04/04 Python