文档章节

hive 导入mysql 脚本 python

s
 sunhongxi
发布于 2014/11/14 18:11
字数 342
阅读 56
收藏 0

import subprocess

import sys 


print "脚本名:", sys.argv[0]

tableName=sys.argv[1]

startdate=sys.argv[2]

enddate=sys.argv[3]


if startdate=="":

print "please input statdate !"

sys.exit() 


if enddate=="" :

enddate=startdate


com=""

if tableName=="t_netflow_pc_city_cate_pv" :

#t_netflow_pc_city_cate_pv_yyyymm  hql

com="hive -e \"use tmpdb; select statdate , chlname,   pagetype,area1 ,cate1, cate2 ,   pv, uv ,newuv ,  visit,newvisit , avgpage , avgtime , jumpin , jumpout , outrate from ext_pctrack_is where statdate>='"+startdate+"' and statdate<='"+enddate+"'  and cate3='A' and cate4='A' and cate5='A' and area2='A' and area3='A' and area4='A' and source1='A' and source2='A';\" > tmp/t_netflow_pc_city_cate_pv_"+startdate+".txt;"


elif tableName=="t_netflow_pc_source_cate_pv":

com="hive -e \"use tmpdb; select statdate , chlname,  pagetype,source1 ,source2 ,  cate1, cate2,cate3 ,   pv, uv ,newuv ,  visit,newvisit , avgpage , avgtime , jumpin , jumpout , outrate   from ext_pctrack_is  where  statdate>='"+startdate+"' and statdate<='"+enddate+"' and cate4='all' and cate5='all' and area1='all' and area2='all' and area3='all' and area4='all' ;\" > tmp/t_netflow_pc_source_cate_pv_"+enddate+".txt;"


elif tableName=="t_netflow_pc_pv":

com="hive -e \"use tmpdb; select statdate , chlname,pagetype,source1 , area1,cate1,   pv, uv ,newuv , visit,newvisit , avgpage , avgtime , jumpin , jumpout , outrate   from ext_pctrack_is  where  statdate>='"+startdate+"' and statdate<='"+enddate+"' and cate2='all' and cate3='all' and cate4='all' and cate5='all' and area2='all' and area3='all' and area4='all' and  source2='all';\" > tmp/t_netflow_pc_pv_"+startdate+".txt;"


print com


def executeHql(hql):

p = subprocess.Popen(hql, shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)

res="1"

for line in p.stdout.readlines():

print line

if "Exception" in line :

executeHql(com)

res="0"

else :

res="1"

retval = p.wait()

return res



print "hive select  start ------------------------------------------"

count=1

while 1:

print "count is ----------------------" +str(count)

count=count+1

res=executeHql(com)

if res=="1":

break


print "hive select  end  ------------------------------------------"

print "mysql load  start ------------------------------------------"


mload="mysql -uXXX -pXXXX -hXXXX -PXXX -DXXX -e\"LOAD DATA LOCAL INFILE 'tmp/"+tableName+"_"+startdate+".txt' INTO TABLE "+tableName+"  FIELDS TERMINATED BY '\t' LINES TERMINATED BY '\n'\""


p = subprocess.Popen(mload, shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)

for line in p.stdout.readlines():

print line 

retval = p.wait()


print "mysql load  end ------------------------------------------"


© 著作权归作者所有

共有 人打赏支持
s
粉丝 1
博文 7
码字总数 3845
作品 0
朝阳
程序员
hive+python数据分析入门

本文首先发布在: http://leanote.com/blog/view/539276d41a91080a06000002 本文作者系 leanote 的核心开发者, 多谢关注leanote. leanote官网, leanote github 为什么要使用hive+python来分析...

lifephp
2014/06/07
0
2
使用pyspark模仿sqoop从oracle导数据到hive的主要功能(自动建表,分区导入,增量,解决数据换行符问题)

  最近公司开始做大数据项目,让我使用sqoop(1.6.4版本)导数据进行数据分析计算,然而当我们将所有的工作流都放到azkaban上时整个流程跑完需要花费13分钟,而其中导数据(增量)就占了4...

ZJ&Y
07/31
0
0
Python 连接mysql数据库进行操作

1.MySQLdb 模块是用于Python链接Mysql数据库的接口,默认是没有安装的 [root@python ~]# yum install MySQL-python -y 2.创建python脚本 [root@python ~]# cat mysql.py #!/usr/bin/env pytho......

XiaoBingZ
06/26
0
0
更新hive元数据-python代码

因为之前平台部署的hive下的元数据是放在mysql中的,而mysql由设置了为了拉丁文,导致元数据都是乱码的。 于是开始了更新计划,办法就是用svn中的建表语句,提取出来写到元数据的mysql下,然...

yuppy_zyp
2017/11/14
0
0
Pig 读书笔记 + 工作总结(干货很多)

编码规范: 1. 注释: 单行:-- 多行或嵌入式: / / 2. 大小写: 关键字不区分大小写,变量名和udf区分大小写 数据类型: int, long, float, double, chararray, Bytearray, tuple, bag, ma...

王二铁
2014/05/19
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

深夜胡思乱想

魔兽世界 最近魔兽世界出了新版本, 周末两天升到了满级,比之前的版本体验好很多,做任务不用抢怪了,不用组队打怪也是共享拾取的。技能简化了很多,哪个亮按哪个。 运维 服务器 产品 之间的...

Firxiao
4分钟前
0
0
MySQL 8 在 Windows 下安装及使用

MySQL 8 带来了全新的体验,比如支持 NoSQL、JSON 等,拥有比 MySQL 5.7 两倍以上的性能提升。本文讲解如何在 Windows 下安装 MySQL 8,以及基本的 MySQL 用法。 下载 下载地址 https://dev....

waylau
38分钟前
0
0
微信第三方平台 access_token is invalid or not latest

微信第三方开发平台code换session_key说的特别容易,但是我一使用就带来无穷无尽的烦恼,搞了一整天也无济于事. 现在记录一下解决问题的过程,方便后来人参考. 我遇到的这个问题搜索了整个网络也...

自由的开源
今天
0
0
openJDK之sun.misc.Unsafe类CAS底层实现

注:这篇文章参考了https://www.cnblogs.com/snowater/p/8303698.html 1.sun.misc.Unsafe中CAS方法 在sun.misc.Unsafe中CAS方法如下: compareAndSwapObject(java.lang.Object arg0, long a......

汉斯-冯-拉特
今天
2
0
设计模式之五 责任链模式(Chain of Responsibility)

一. 场景 相信我们都有过这样的经历; 我们去职能部门办理一个事情,先去了A部门,到了地方被告知这件事情由B部门处理; 当我们到了B部门的时候,又被告知这件事情已经移交给了C部门处理; ...

JackieRiver
今天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部