python 写hive循环脚本
要一个月的数据 一次跑一周的数据 ,建表用插入数据的方法:
import os, sys
reload(sys); sys.setdefaultencoding( "utf-8" )
flag_server = int(os.popen('ifconfig | grep "inet addr:172" | wc -l').read().strip())
dir_scripts = '/app/home/zhangb/' if flag_server else '/Users/zhangb/Desktop/'
dir_data = '/app/home/zhangbo/' if flag_server else '/Users/zhangb/Desktop/'
dir_server = '/app/home/'
sys.path.append(dir_scripts) import datetime
import time
db_name = 'zhangb' def hive_day_cid(create_date,type11_duration):
#原始表geohash表关联,找到cid
# ------------------ 建立 geohash 表 -------------------- #
print "# ---------------------------------------------------------------------------------- #" start_date_str = (create_date - datetime.timedelta(days=type11_duration-1)).strftime("%Y%m%d")
end_date_str = create_date.strftime("%Y%m%d") hive_command = ( '''
hive -e " use %s;
create table if not exists hive_day_cid_provider(provider string,day int, cnt_cid bigint,dist_cid bigint ); insert into hive_day_cid_provider
select a.provider,a.day,count(a.cid) as cnt_cid,count(distinct(a.cid)) as dist_cid from
(select day,provider,token_md5 as cid from report_ods_mdp.upload_bi_type11
where day >=%s and day <= %s and length(token_md5)>0 and provider in ('gps','network','passive','none') ) a
group by a.provider,a.day ;"
''' % ( db_name,start_date_str, end_date_str) ) print hive_command
if flag_server:
os.system(hive_command)
print "\n" if __name__ == '__main__': start = time.time()
business_name = 'brand48'
# ----------------------------------------
#7号是这个周期中的最后一天,是周期结束日期
for (i,j) in [ (11,7),(11,14),(11,28),(12,5),(12,12),(12,19),(12,26)]:
# for (i, j) in [(2, 7), (2, 14), (2, 21), (2, 28)]:
create_date = datetime.date(2016,i,j)
type11_duration=7
hive_day_cid(create_date,type11_duration)
print "\r"
print '# Time: ', str(datetime.timedelta(seconds=(time.time() - start)))
print '# the end'
print '\n' #hive_imei_time_list(create_date,type11_duration)
print '# Time: ', str(datetime.timedelta(seconds=(time.time() - start))) # Beintoo_day.hive_output(create_date, cnt_duration=7)
'''
for i in range(1,30):
a=datetime.date(2016, 2, 23)
b=a+ datetime.timedelta(7*i)
print b
'''
#===跨年的时候处理方法1
'''
date_begin = datetime.date(2016,12,1)
# date_end = date_begin
date_end = datetime.date(2017,1,10)
for i in range(0,(date_end - date_begin).days+1,7):
create_date = date_begin + datetime.timedelta(days=i) print create_date #方法2
date_begin = datetime.date(2016,12,1)
# date_end = date_begin
date_end = datetime.date(2017,1,10) while date_begin <= date_end:
print date_begin
date_begin = date_begin + datetime.timedelta(days=7)
'''
python 写hive循环脚本的更多相关文章
- Python写网络后台脚本
Python写网络后台脚本. 首先安装Python3.6.5,在centos中自带的Python是2.6版本的,现在早就出现了3.6版本了况且2和3 之间的差距还是比较大的,所以我选择更新一下Pyth ...
- 用Python写的简单脚本更新本地hosts
这两天Google墙得严重,于是就产生了做个一键更新hosts的脚本的想法. 由于正在学习Python,理所当然用Python来写这个脚本了. 接触比较多的就是urllib2这个库,习惯性的impor ...
- 用Python写一个游戏脚本,你会吗?
前言本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理.作者:ivat4u 学习python有一段时间了,由于python语言的强大 ...
- python写一个DDos脚本(DOS)
前言:突然想写,然后去了解原理 DDOS原理:往指定的IP发送数据包(僵尸网络),导致服务器 拒绝服务,无法正常访问. 0x01: 要用到的模块 scapy模块 pip install scapy 或 ...
- python写一段脚本代码自动完成输入(目录下的所有)文件的数据替换(修改数据和替换数据都是输入的)【转】
转自:http://blog.csdn.net/lixiaojie1012/article/details/23628129 初次尝试python语言,感觉用着真舒服,简单明了,库函数一调用就OK了 ...
- 教你如何使用Python写游戏辅助脚本
主要实现方式是通过图片的对比,在游戏中就行点击.运行程序需要以下东西. PIL: 图片处理模块 (python3 换成了 pillow) 下载地址: https://www.lfd.uci. ...
- 用python写一个自动化盲注脚本
前言 当我们进行SQL注入攻击时,当发现无法进行union注入或者报错等注入,那么,就需要考虑盲注了,当我们进行盲注时,需要通过页面的反馈(布尔盲注)或者相应时间(时间盲注),来一个字符一个字符的进行 ...
- 用python & bat写软件安装脚本 + HM NIS Edit自动生成软件安装脚本
2019-03-11更新:原来NSIS脚本也可以禁用64位文件操作重定向的! 1.在安装脚本的开始处定义 LIBRARY_X64. !include "MUI.nsh"!inclu ...
- 一个好用的Python备份mysql的脚本
前几天打算用Python写一个mysql脚本,上Google看了下老外写的,写的挺好的,原地址在http://tecadmin.net/python-script-for-mysql-database ...
随机推荐
- 可视化mark
待尝试研究的可视化组件及产品: 开源组件 商业组件 开源组件 zeppelin Caravel D3.js Flare talend(ETL) pentaho spagoBI NanoCubs Dyg ...
- PHP常用函数总结(二):
//=================图像处理=================================== //=================会话机制================== ...
- JSSDK微信自定义分享朋友圈
服务项目 新手技术咨询 企业技术咨询 定制开发 服务说明 QQ有问必答 QQ.微信.电话 微信开发.php开发,网站开发,系统定制,小程序开发 价格说明 200元/月 1000/月 商议 ...
- JAVA课程设计——多源教学数据管理系统
团队简介 团队名称: 419圣斗士 团队成员 姓名 成员介绍 任务分配 周炳辉(组长) 来自网络的一个大佬,穿女装很合适 poi与servlet 徐宏伟 网络中一个具有强大隐藏实力的大哥 css,部分 ...
- 一些css杂项笔记
div[class*="col-"]{ background-color: gold; border: 1px solid #ccc; } //给class开头等于col-的div ...
- 9-16Jenkins-1第一个任务
jenkins安装搭建 #mac安装jenkins brew install jenkins #或下载war包 java -jar jenkins.war 第一个jenkins任务 创建一个自由风格的 ...
- ActiveMQ 高可用集群安装、配置(ZooKeeper + LevelDB)
ActiveMQ 高可用集群安装.配置(ZooKeeper + LevelDB) 1.ActiveMQ 集群部署规划: 环境: JDK7 版本:ActiveMQ 5.11.1 ZooKeeper 集群 ...
- [转载] ./configure,make,make install的作用
1.configure,这一步一般用来生成 Makefile,为下一步的编译做准备,你可以通过在 configure 后加上参数来对安装进行控制,比如代码:./configure –prefix=/u ...
- How to use POST method in Tornado?
http://stackoverflow.com/questions/10367981/how-to-use-post-method-in-tornado
- 由一条普通的link引用引发的无数问号,大家能回答的帮忙回答回答吧.
<link type="text/css" rel="stylesheet" href="1.css" /> 对于前台工作者来说 ...