{"rsdb":{"rid":"156206","subhead":"","postdate":"0","aid":"117268","fid":"54","uid":"1","topic":"1","content":"

\u6837\u4f8b\u5305\u542b\u4e09\u90e8\u5206\u4ee3\u7801\uff0c\u5468\u7684\u5904\u7406\u51fd\u6570\u90e8\u5206\u3001\u4e1a\u52a1\u6570\u636e\u5904\u7406\u90e8\u5206\u53ca\u591a\u7ebf\u7a0b\u8dd1\u6279\u8c03\u5ea6\u5904\u7406\u90e8\u5206\u3002<\/p>

\u4ee3\u7801\u6309\u529f\u80fd\u5206\u7c7b\u5b58\u653e\uff0c\u6709\u52a9\u4e8e\u4f7f\u4ee3\u7801\u66f4\u6e05\u6670\uff0c\u901a\u8fc7from...import\u7684\u65b9\u5f0f\uff0c\u4f7f\u4ee3\u7801\u91cd\u590d\u4f7f\u7528\u3002<\/p>

\u53e6\u5916\uff0c\u591a\u7ebf\u7a0b\u7684\u8c03\u7528\u90e8\u5206\uff0c\u6709\u6548\u5904\u7406\u4e86\u7a0b\u5e8f\u5148\u540e\u4f9d\u8d56\u53ca\u591a\u7a0b\u5e8f\u4e32\u5e76\u884c\u8dd1\u6279\u95ee\u9898\uff0c\u4e3a\u4ee5\u540e\u76f8\u4f3c\u95ee\u9898\u7684\u5904\u7406\uff0c\u63d0\u4f9b\u4e86\u501f\u9274\u3002<\/p>

1\u3001\u5468\u5904\u7406\u51fd\u6570<\/p>

\/Users\/nisj\/PycharmProjects\/EsDataProc\/Remain_Data_Proc\/WeekCalc.py<\/p>

# -*- coding=utf-8 -*-
import warnings
import datetime<\/p>

warnings.filterwarnings(\"ignore\")<\/p>

def getNowYearWeek():
? ? # \u5f53\u524d\u65f6\u95f4\u5e74\u7b2c\u51e0\u5468\u7684\u8ba1\u7b97
? ? timenow = datetime.datetime.now() - datetime.timedelta(days=7)
? ? NowYearWeek = timenow.isocalendar()
? ? return str(NowYearWeek[0])+\"#\"+str(NowYearWeek[1])<\/p>

def dateRange(beginDate, endDate):
? ? dates = []
? ? dt = datetime.datetime.strptime(beginDate, \"%Y-%m-%d\")
? ? date = beginDate[:]
? ? while date <= endDate:
? ? ? ? dates.append(date)
? ? ? ? dt = dt + datetime.timedelta(1)
? ? ? ? date = dt.strftime(\"%Y-%m-%d\")
? ? return dates<\/p>

def weekRang(beginDate, endDate):
? ? week = set()
? ? for date in dateRange(beginDate, endDate):
? ? ? ? week.add(datetime.date(int(date[0:4]), int(date[5:7]), int(date[8:10])).isocalendar()[0:2])<\/p>

? ? wk_l = []
? ? for wl in sorted(list(week)):
? ? ? ? wk_l.append(str(wl[0])+'#'+str(wl[1]))
? ? return wk_l<\/p>

def currWeekList(his_week):
? ? last_wk = datetime.datetime.now() - datetime.timedelta(days=7)
? ? end_day = str(last_wk)[0:10]
? ? curr_week_list = []
? ? for week in weekRang('2015-07-01', end_day):
? ? ? ? if (int(week[0:4]) == int(his_week[0:4]) and int(week[5:]) >= int(his_week[5:])) or (int(week[0:4]) > int(his_week[0:4])):
? ? ? ? ? ? curr_week_list.append(week)
? ? return curr_week_list<\/p>

def hisRunWeekList(his_week):
? ? batch_week_list = []
? ? for curr_week in currWeekList(his_week):
? ? ? ? if (int(his_week[0:4]) == int(curr_week[0:4]) and int(his_week[5:]) <= int(curr_week[5:])) or (int(his_week[0:4]) < int(curr_week[0:4])):
? ? ? ? ? ? batch_week_list.append(([curr_week, his_week],None))
? ? return batch_week_list<\/p>

def RuningWeekList():
? ? curr_week = getNowYearWeek()
? ? batch_week_list = []
? ? for his_week in currWeekList('2015#27'):
? ? ? ? ? ? if (int(his_week[0:4]) == int(curr_week[0:4]) and int(his_week[5:]) <= int(curr_week[5:])) or (int(his_week[0:4]) < int(curr_week[0:4])):
? ? ? ? ? ? ? ? batch_week_list.append(([curr_week, his_week],None))
? ? return batch_week_list<\/p>

def getWeekFristday(weekflag):
? ? yearnum = weekflag[0:4]? # \u53d6\u5230\u5e74\u4efd
? ? weeknum = weekflag[5:7]? # \u53d6\u5230\u5468
? ? stryearstart = yearnum + '0101'? # \u5f53\u5e74\u7b2c\u4e00\u5929
? ? yearstart = datetime.datetime.strptime(stryearstart, '%Y%m%d')? # \u683c\u5f0f\u5316\u4e3a\u65e5\u671f\u683c\u5f0f
? ? yearstartcalendarmsg = yearstart.isocalendar()? # \u5f53\u5e74\u7b2c\u4e00\u5929\u7684\u5468\u4fe1\u606f
? ? yearstartweekday = yearstartcalendarmsg[2]
? ? yearstartyear = yearstartcalendarmsg[0]
? ? if yearstartyear < int(yearnum):
? ? ? ? daydelat = (8 - int(yearstartweekday)) + (int(weeknum) - 1) * 7
? ? else:
? ? ? ? daydelat = (8 - int(yearstartweekday)) + (int(weeknum) - 2) * 7<\/p>

? ? week1day = (yearstart + datetime.timedelta(days=daydelat)).date()
? ? return week1day<\/p>

# Batch Test
# his_week_list = ['2015#46', '2015#45', '2016#2']
# batch_week_list = []
# for his_week in his_week_list:
#? ? batch_week_list.extend(hisRunWeekList(his_week))
# print batch_week_list
# print getWeekFristday('2016#11')
# his_week = '2016#11'
# print currWeekList(his_week)<\/p>

# print getNowYearWeek()<\/p>

2\u3001\u4e1a\u52a1\u5904\u7406\u90e8\u5206
\/Users\/nisj\/PycharmProjects\/EsDataProc\/Remain_Data_Proc\/Hive_remain_byWeek_proc.py<\/p>

# -*- coding=utf-8 -*-
import time
import os
import re
from WeekCalc import *<\/p>

warnings.filterwarnings(\"ignore\")<\/p>


def newuser_byweek_proc(batch_week):
? ? week1day = getWeekFristday(batch_week)
? ? os.system(\"\"\"\/usr\/lib\/hive-current\/bin\/hive -e \" \\
? ? alter table bi_newuser_byweek drop if exists partition(pt_week='%s'); \\
? ? al","orderid":"0","title":"Python\u6a21\u5757\u5316\u5f00\u53d1\u7ec4\u7ec7\u4ee3\u7801\u7a0b\u5e8f\u793a\u4f8b(\u4e00)","smalltitle":"","mid":"0","fname":"linux\u7f16\u7a0b\u57fa\u7840","special_id":"0","bak_id":"0","info":"0","hits":"900","pages":"5","comments":"0","posttime":"2017-01-24 08:15:36","list":"1485216936","username":"admin","author":"","copyfrom":"","copyfromurl":"","titlecolor":"","fonttype":"0","titleicon":"0","picurl":"https:\/\/www.cppentry.com\/upload_files\/","ispic":"0","yz":"1","yzer":"","yztime":"0","levels":"0","levelstime":"0","keywords":"Python<\/A> \u6a21\u5757\u5316<\/A> \u5f00\u53d1<\/A> \u7ec4\u7ec7<\/A> \u4ee3\u7801<\/A> \u7a0b\u5e8f<\/A> \u793a\u4f8b<\/A>","jumpurl":"","iframeurl":"","style":"","template":"a:3:{s:4:\"head\";s:0:\"\";s:4:\"foot\";s:0:\"\";s:8:\"bencandy\";s:0:\"\";}","target":"0","ip":"14.17.22.31","lastfid":"0","money":"0","buyuser":"","passwd":"","allowdown":"","allowview":"","editer":"","edittime":"0","begintime":"0","endtime":"0","description":"Python\u6a21\u5757\u5316\u5f00\u53d1\u7ec4\u7ec7\u4ee3\u7801\u7a0b\u5e8f\u793a\u4f8b","lastview":"1714558250","digg_num":"8180","digg_time":"0","forbidcomment":"0","ifvote":"0","heart":"","htmlname":"","city_id":"0"},"page":"1"}