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

 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. 白话 Java Bean

    所谓的Java Bean,就是一个java类,编译后成为了一个后缀名是 .class的文件.这就是Java Bean,不就是Java类吗? 1. 什么是 Java Bean? 很多培训机构在讲java ...

  2. Hadoop高级培训课程大纲-开发者版

    一.课程概述 本次培训课程主要面向大数据系统管理人员和开发设计人员,基于开源社区大数据应用最活跃的Hadoop和HBase技术框架,围绕分布式文件存储(HDFS).分布式并行计算(Map/Recue) ...

  3. web服务器检测

    # coding=utf-8 import sys import socket import re def check_webserver(address, port, resource): addr ...

  4. Find substring with K distinct characters

    Given a string and number K, find the substrings of size K with K distinct characters. If no, output ...

  5. 正则的使用及replace细讲

    1.var reg=/./ 与 var reg=/\./的区别? .代表任意一个字符 \.而后者代表这个字符串中得有一个. 2.?的使用 如果单独的一个字符后面带? /\d?/ 代表1个或0个这个字符 ...

  6. [UE4]角色增加挂点、增加枪

    人物骨骼增加Socket(骨骼) 增加手持武器预览: 角色蓝图增加组件“Skeletal Mesh”(好像这叫骨骼模型吧),并拖放至人物“Mesh”下面作为子组件. 选中刚建好的“SkeletalMe ...

  7. 第14章 UDP编程(1)_UDP客户端服务器模型

    1. UDP编程模型 (1)UDP客户端服务器模型 ①客户端可以不调用bind()而直接与服务器通讯. ②UDP是无连接的,因此服务端不需要调用accept和listen,客户端也无需调用connec ...

  8. Install hadoop on windows(non-virtual machine, such cygwin)

    DownloadBefore starting make sure you have this two softwares Hadoop 2.7.1 Java – Jdk 1.7+ Extract d ...

  9. 【Python编程:从入门到实践】chapter3 列表简介

    chapter3 列表简介3.1 列表是什么 列表是一系列按特定顺序排列的元素组成. bicycle = ['trek','cannondale'] print bicycle 3.1.1 访问列表元 ...

  10. Thread 1 cannot allocate new log的问题分析 (转载)

    Thread 1 cannot allocate new log的问题分析 发生oracle宕机事故,alert文件中报告如下错误: Fri Jan 12 04:07:49 2007Thread 1 ...