使用Python构造hive insert语句说明

所属分类: 脚本专栏 / python 阅读数: 1949
收藏 0 赞 0 分享

mysql可以使用nevicat导出insert语句用于数据构造,但是hive无法直接导出insert语句。我们可以先打印在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 matplotlib模块及柱状图用法解析

这篇文章主要介绍了Python matplotlib模块及柱状图用法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
收藏 0 赞 0 分享

Python getattr()函数使用方法代码实例

这篇文章主要介绍了Python getattr()函数使用方法代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
收藏 0 赞 0 分享

Python 发送邮件方法总结

这篇文章主要介绍了Python 发送邮件的几种方法,帮助大家更好的理解和学习Python,感兴趣的朋友可以了解下
收藏 0 赞 0 分享

拿来就用!Python批量合并PDF的示例代码

这篇文章主要介绍了Python批量合并PDF的示例代码,帮助大家更好的理解和学习Python,感兴趣的朋友可以了解下
收藏 0 赞 0 分享

Python如何爬取b站热门视频并导入Excel

这篇文章主要介绍了Python如何爬取b站热门视频并导入Excel,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
收藏 0 赞 0 分享

Python进行统计建模

这篇文章主要介绍了Python进行统计建模的方法,帮助大家更好的理解和学习Python,感兴趣的朋友可以了解下
收藏 0 赞 0 分享

Python多线程的退出控制实现

这篇文章主要介绍了Python多线程的退出控制实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
收藏 0 赞 0 分享

如何在python中实现线性回归

这篇文章主要介绍了如何在python中实现线性回归,帮助大家更好的理解和学习Python,感兴趣的朋友可以了解下
收藏 0 赞 0 分享

python多线程semaphore实现线程数控制的示例

这篇文章主要介绍了python多线程semaphore实现线程数控制的示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
收藏 0 赞 0 分享

推荐值得学习的12款python-web开发框架

这篇文章主要介绍了值得学习的12款python-web开发框架,帮助大家更好的理解和学习Python web开发,感兴趣的朋友可以了解下
收藏 0 赞 0 分享
查看更多