使用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使用matplotlib绘制动画的方法
May 20 Python
python-opencv在有噪音的情况下提取图像的轮廓实例
Aug 30 Python
python实现12306抢票及自动邮件发送提醒付款功能
Mar 08 Python
Linux下多个Python版本安装教程
Aug 15 Python
python3 实现对图片进行局部切割的方法
Dec 05 Python
使用python绘制3维正态分布图的方法
Dec 29 Python
opencv导入头文件时报错#include的解决方法
Jul 31 Python
python实现身份证实名认证的方法实例
Nov 08 Python
三步解决python PermissionError: [WinError 5]拒绝访问的情况
Apr 22 Python
Pyinstaller 打包发布经验总结
Jun 02 Python
python实现批处理文件
Jul 28 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从右向左/从左向右截取字符串的实现方法
2011/11/28 PHP
Yii框架实现对数据库的CURD操作示例
2019/09/03 PHP
javascript下高性能字符串连接StringBuffer类
2010/08/16 Javascript
面向对象Javascript核心支持代码分享
2012/05/23 Javascript
jquery全选/全不选/反选另一种实现方法(配合原生js)
2013/04/07 Javascript
jQuery使用技巧简单汇总
2013/04/18 Javascript
浅析document.ready和window.onload的区别讲解
2013/12/18 Javascript
js中的onchange和onpropertychange (onchange无效的解决方法)
2014/03/08 Javascript
js简单实现交换Li的值
2014/05/22 Javascript
Javascript实现多彩雪花从天降散落效果的方法
2015/02/02 Javascript
jquery制作多功能轮播图插件
2015/04/02 Javascript
jQuery自动添加表单项的方法
2015/07/13 Javascript
Vue概念及常见命令介绍(1)
2016/12/08 Javascript
基于JQuery及AJAX实现名人名言随机生成器
2017/02/10 Javascript
详解nodejs通过响应回写的方式渲染页面资源
2018/04/07 NodeJs
完美解决linux下node.js全局模块找不到的情况
2018/05/16 Javascript
微信小程序实现发送模板消息功能示例【通过openid推送消息给用户】
2019/05/05 Javascript
vue addRoutes路由动态加载操作
2020/08/04 Javascript
Python多维/嵌套字典数据无限遍历的实现
2016/11/04 Python
Python Paramiko模块的安装与使用详解
2016/11/18 Python
深入分析python数据挖掘 Json结构分析
2018/04/21 Python
Tensorflow实现AlexNet卷积神经网络及运算时间评测
2018/05/24 Python
Python实现定时执行任务的三种方式简单示例
2019/03/30 Python
详解Python的三种拷贝方式
2020/02/11 Python
python词云库wordcloud的使用方法与实例详解
2020/02/17 Python
在 Linux/Mac 下为Python函数添加超时时间的方法
2020/02/20 Python
Python 序列化和反序列化库 MarshMallow 的用法实例代码
2020/02/25 Python
Python应用自动化部署工具Fabric原理及使用解析
2020/11/30 Python
python自动打开浏览器下载zip并提取内容写入excel
2021/01/04 Python
css3实现文字扫光渐变动画效果的示例
2017/11/07 HTML / CSS
Levi’s西班牙官方网站:李维斯,著名的牛仔裤品牌
2020/08/20 全球购物
宇宙与人观后感
2015/06/05 职场文书
我的中国梦主题班会
2015/08/14 职场文书
检讨书范文
2019/04/16 职场文书
5道关于python基础 while循环练习题
2021/11/27 Python
Mysql中@和@@符号的详细使用指南
2022/06/05 MySQL