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 ...
随机推荐
- 【python】实例-用户登录系统
有N,E,Q三个选择,若选择Q或者中断,则系统退出.若其他选项,则持续让用户选择. #!/usr/bin/env python db = {} def newuser(): prompt = 'log ...
- ExtJS xtype 一览
基本组件: xtype Class 描述 button Ext.Button 按钮 splitbutton Ext.SplitButton 带下拉菜单的按钮 cycle Ext.CycleButton ...
- C++ STL Set 集合
前言 set是STL中的一种关联容器.集合具有无序性,互异性等特点.熟练使用STL中的set模板类,可以比较简单的解决一些编程问题. 关联容器:元素按照关键字来保存和访问,STL中的map,set就是 ...
- [转]嵌入字体到程序 Winform C#
http://www.cnblogs.com/top5/archive/2011/06/20/2084942.html 程序安装字体或直接调用非注册字体[c#] .安装字体 //程序直接将字体文件安装 ...
- jps命令发生异常
当在集群里输入jps命令时报如下错误: 我就开始检查jdk,感觉应该是centos自动的jdk没卸载干净跟后面安装的jdk冲突 先通过命令 rpm -qa|grep java 查看jdk信息 把这几个 ...
- windows挂载gluseter NFS卷
windows下挂载gluster提供的NFS卷 服务器端的配置: 首先配置好NFS共享,找一台linux试一下,确保挂载成功.linux客户端执行:mount.nfs 10.33.70.20:tes ...
- tensorflow读取数据
线程和队列 在使用TensorFlow进行异步计算时,队列是一种强大的机制. 为了感受一下队列,让我们来看一个简单的例子.我们先创建一个“先入先出”的队列(FIFOQueue),并将其内部所有元素初始 ...
- selenium自动化测试通过localstorage绕过登陆
引言: 做自动化测试,尤其是通过page object模式做UI自动化测试,登陆是个很麻烦的事情,比如你想对某个页面进行测试,一般直接链接到那个页面是不可能的,总是需要先登陆,然后刷新页面才能到想要的 ...
- 31. Next Permutation + 46. Permutations + 47. Permutations II + 60. Permutation Sequence
▶ 问题:字典序生成有关的问题. ▶ 31. 由当前序列生成字典序里的下一个序列. ● 初版代码,19 ms class Solution { public: void nextPermutation ...
- url参数带点
今天在处理一些接口的时候,发现了一些神奇bug. url路径参数/binbin没有问题 但是/jay.chou 发现查不到正确数据了. 其实是spring没有配置好参数带点的情况. RequestMa ...