python获取最大日期的函数

该代码段实现了一个检查HDFS路径中最大日期时间戳的功能,并提供了获取自定义时间间隔的函数。`check_dt()`通过执行HDFS命令获取文件大小和日期信息,然后使用正则表达式解析日期时间戳。`get_customized_items()`返回当前日期和两个过去的时间点,以及调用`check_dt()`得到的最大日期时间戳。
摘要由CSDN通过智能技术生成

##max(dt)替代方法
def check_dt(path, level='G|M|K'):
    cmd = 'hdfs dfs -du -h ' + path
    process = os.popen(cmd)  # return file
    output = process.read()
    process.close()
    output1 = output.split('\n')
    output2 = [val for val in output1 if len(val) > 0]
    res = []
    for val in output2:
        detepat = re.compile('(\d+\.*\d*)\s[' + level + ']\s.*dt=[0-9\-]{10}')
        result = detepat.finditer(val)
        res1 = [m.group() for m in result]
        if len(res1) > 0:
            res.extend(res1)
    if len(res) > 0:
        detepat2 = re.compile('(\d+\.*\d*)\s.*dt=([0-9\-]{10})')
        size_dt_grp = [re.search(detepat2, val) for val in res]
        max_dt = max([m.group(2) for m in size_dt_grp if float(m.group(1)) > 0])
        return max_dt

def get_customized_items():
    """
     if you need some special values in your sql, please define and calculate then here
     to refer it as {YOUR_VAR} in your sql
    """
    today = Time.today()
    TX_PRE_60_DATE = Time.date_sub(date=today, itv=60)
    TX_PRE_365_DATE = Time.date_sub(date=today, itv=365)
 
    TX_DATE_MAX01 = check_dt('hdfs://ns***/hive/databse.db/') ;
    return locals()

根据身份证判断男女的规则:

case 
            when length(dd)=18 and  substr(dd,17,1)%2=1 then '1' 
            when length(dd)=18 and  substr(dd,17,1)%2=0 then '2' 
            when length(dd)=15 and  substr(dd,15,1)%2=1 then '1' 
            when length(dd)=15 and  substr(dd,15,1)%2=0 then '2'   
         end as id_gender

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值