使用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 11 Python
Python实现压缩与解压gzip大文件的方法
Sep 18 Python
一个基于flask的web应用诞生 使用模板引擎和表单插件(2)
Apr 11 Python
深入浅析Python的类
Jun 22 Python
python操作文件的参数整理
Jun 11 Python
Python实用库 PrettyTable 学习笔记
Aug 06 Python
python实现的生成word文档功能示例
Aug 23 Python
pytorch中tensor张量数据类型的转化方式
Dec 31 Python
python GUI库图形界面开发之PyQt5信号与槽基础使用方法与实例
Mar 06 Python
使用Jupyter notebooks上传文件夹或大量数据到服务器
Apr 14 Python
Python2与Python3关于字符串编码处理的差别总结
Sep 07 Python
Pytest中skip和skipif的具体使用方法
Jun 30 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
用Apache反向代理设置对外的WWW和文件服务器
2006/10/09 PHP
Ext.data.PagingMemoryProxy分页一次性读取数据的实现代码
2010/04/07 PHP
php制作unicode解码工具(unicode编码转换器)代码分享
2013/12/24 PHP
详解php用curl调用接口方法,get和post两种方式
2017/01/13 PHP
Laravel中的Blade模板引擎示例详解
2017/10/10 PHP
PHP基于array_unique实现二维数组去重
2020/07/14 PHP
ASP.NET MVC中EasyUI的datagrid跨域调用实现代码
2012/03/14 Javascript
中国地区三级联动下拉菜单效果分析
2012/11/15 Javascript
JS函数重载的解决方案
2014/05/13 Javascript
全面解析Bootstrap表单使用方法(表单控件)
2015/11/24 Javascript
一波JavaScript日期判断脚本分享
2016/03/06 Javascript
Vue 动态设置路由参数的案例分析
2018/04/24 Javascript
vue-cli与webpack处理静态资源的方法及webpack打包的坑
2018/05/15 Javascript
js实现聊天对话框
2020/02/08 Javascript
js实现点击烟花特效
2020/10/14 Javascript
[00:43]FTP典藏礼包 DOTA2三大英雄霸气新套装
2014/03/21 DOTA
[44:50]2018DOTA2亚洲邀请赛 4.1 小组赛 A组 TNC vs VG
2018/04/02 DOTA
Python下的常用下载安装工具pip的安装方法
2015/11/13 Python
详解python里使用正则表达式的全匹配功能
2017/10/19 Python
Python pycharm 同时加载多个项目的方法
2019/01/17 Python
PyQt5响应回车事件的方法
2019/06/25 Python
解决使用Pandas 读取超过65536行的Excel文件问题
2020/11/10 Python
python 使用csv模块读写csv格式文件的示例
2020/12/02 Python
CSS3+JavaScript实现炫酷呼吸效果的示例代码
2020/06/15 HTML / CSS
护士自荐信怎么写
2013/10/18 职场文书
个人求职简历中英文自我评价
2013/12/16 职场文书
旅行社各个岗位职责
2014/03/15 职场文书
我的职业生涯规划:打造自己的运动帝国
2014/09/18 职场文书
2014年计划生育工作总结
2014/11/14 职场文书
爱晚亭导游词
2015/02/09 职场文书
银行先进个人总结
2015/02/15 职场文书
投诉信格式范文
2015/07/02 职场文书
贷款担保书范本
2015/09/22 职场文书
MySQL时间设置注意事项的深入总结
2021/05/06 MySQL
叶县这家生产军用电台的兵工厂,人称“四机部”,走出一上将
2022/02/18 无线电
Python学习之异常中的finally使用详解
2022/03/16 Python