#coding:utf-8
import os
import datetime
#获取之后日期
def get_day(st,dt,format="%Y%m%d"):
day = st + datetime.timedelta(days=dt)
return day.strftime(format)
#日期格式转换
def format_date(t):
return datetime.date(int(t[0:4]),int(t[4:6]),int(t[6:]))
#执行shell命令
def execute_shell(shell_cmd):
result = os.system(shell_cmd)
if result != 0:
print("%s cmd execute failed!"%shell_cmd)
raise Exception("%s cmd execute failed!"%shell_cmd)
print("%s cmd execute success!"%shell_cmd)
#后续不用创建表
def supplementary_data(days):
#补数sql
sql1 = '''
hive --hivevar today=%s -f /home/risk/flow-error-uv-check/hql/flow/flow_v2.sql
'''%(days)
print (sql1)
execute_shell(sql1)
#计算两个日期之间的时间差
def calculate_delta_t(st, et):
st = datetime.date(int(st[0:4]),int(st[4:6]),int(st[6:]))
et = datetime.date(int(et[0:4]),int(et[4:6]),int(et[6:]))
return (et - st).days
if __name__ == '__main__':
st = '20210901'
et = '20211101'
for i in range(int(calculate_delta_t(st, et))):
day = get_day(format_date(st), i)
supplementary_data(day)
python脚本补充两个日期之间的hive数据
最新推荐文章于 2022-04-08 09:22:53 发布