要一个月的数据 一次跑一周的数据 ,建表用插入数据的方法:

 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循环脚本的更多相关文章

  1. Python写网络后台脚本

    Python写网络后台脚本. 首先安装Python3.6.5,在centos中自带的Python是2.6版本的,现在早就出现了3.6版本了况且2和3 之间的差距还是比较大的,所以我选择更新一下Pyth ...

  2. 用Python写的简单脚本更新本地hosts

    这两天Google墙得严重,于是就产生了做个一键更新hosts的脚本的想法. 由于正在学习Python,理所当然用Python来写这个脚本了. 接触比较多的就是urllib2这个库,习惯性的impor ...

  3. 用Python写一个游戏脚本,你会吗?

    前言本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理.作者:ivat4u  学习python有一段时间了,由于python语言的强大 ...

  4. python写一个DDos脚本(DOS)

    前言:突然想写,然后去了解原理 DDOS原理:往指定的IP发送数据包(僵尸网络),导致服务器 拒绝服务,无法正常访问. 0x01: 要用到的模块 scapy模块 pip install scapy 或 ...

  5. python写一段脚本代码自动完成输入(目录下的所有)文件的数据替换(修改数据和替换数据都是输入的)【转】

    转自:http://blog.csdn.net/lixiaojie1012/article/details/23628129 初次尝试python语言,感觉用着真舒服,简单明了,库函数一调用就OK了 ...

  6. 教你如何使用Python写游戏辅助脚本

    主要实现方式是通过图片的对比,在游戏中就行点击.运行程序需要以下东西. PIL: 图片处理模块     (python3 换成了 pillow)  下载地址: https://www.lfd.uci. ...

  7. 用python写一个自动化盲注脚本

    前言 当我们进行SQL注入攻击时,当发现无法进行union注入或者报错等注入,那么,就需要考虑盲注了,当我们进行盲注时,需要通过页面的反馈(布尔盲注)或者相应时间(时间盲注),来一个字符一个字符的进行 ...

  8. 用python & bat写软件安装脚本 + HM NIS Edit自动生成软件安装脚本

    2019-03-11更新:原来NSIS脚本也可以禁用64位文件操作重定向的! 1.在安装脚本的开始处定义 LIBRARY_X64. !include "MUI.nsh"!inclu ...

  9. 一个好用的Python备份mysql的脚本

    前几天打算用Python写一个mysql脚本,上Google看了下老外写的,写的挺好的,原地址在http://tecadmin.net/python-script-for-mysql-database ...

随机推荐

  1. hadoop最新版本介绍之dkhadoop版本选择

    Hadoop对于从事互联网工作的朋友来说已经非常熟悉了,相信在我们身边有很多人正在转行从事hadoop开发的工作,理所当然也会有很多hadoop入门新手.Hadoop开发太过底层,技术难度远比我们想象 ...

  2. Openwrt TTL线刷

    1.接通串口,网线: 2.打开串口软件SecureCRT: 3.按复位键,不断地出现信息: 4.2秒内按任意键停下来,出现uboot> 5.输入httpd 6.打开网页,输入ip 7.开始更新, ...

  3. 共享设置及ftp设置

    第一部分 共享设置 一.添加编译选项 network---file transfer---aria2                                                   ...

  4. win7 X64 使用VS2008 ->编译报错LINK : fatal error LNK1000: Internal error during Incr的解决

    编译报错LINK : fatal error LNK1000: Internal error during Incr的解决 Win7 旗舰版 Microsoft Visual Studio 2008 ...

  5. Fatal error: Unable to find local grunt.

    https://stackoverflow.com/questions/15483735/fatal-error-unable-to-find-local-grunt-when-running-gru ...

  6. vue+node+mongoDB前后端分离个人博客(入门向)

    最近学习了VUE,自己为了学习做了个小小的博客,功能很简单,不过开发过程中也遇到了很多坑,所以记录下来方便以后使用.欢迎大家交流学习. 功能 实现了用户注册.登录.token检测登录.用户留言.个人中 ...

  7. 在Windows下使用svn命令行教程及svn命令行的解释

    本文转载自:https://blog.csdn.net/yangxiao2shi/article/details/50719286/ 以前在公司一直使用git,现在的公司改用svn,一时间还真的不知道 ...

  8. spring boot学习(4) SpringBoot 之Spring Data Jpa 支持(1)

    第一节:Spring Data Jpa 简介 Spring-Data-Jpa JPA(Java Persistence API)定义了一系列对象持久化的标准,目前实现这一规范的产品有Hibernate ...

  9. css transition transform animation例子讲解

    1.transition属性: transition属性是一个速记属性有四个属性:transition-property , transition-duration, transition-timin ...

  10. Logstash之三:命令行中常用的命令

    -f:通过这个命令可以指定Logstash的配置文件,根据配置文件配置logstash -e:后面跟着字符串,该字符串可以被当做logstash的配置(如果是“” 则默认使用stdin作为输入,std ...