DateFormatUtil

SingleOutputStreamOperator<String> processDS = filterDS.process( new ProcessFunction<String, String>() { @Override public void processElement(String jsonStr, Context ctx, Collector<String> out) throws Exception { JSONObject jsonObj = JSON.parseObject(jsonStr); DwdTransTransFinishBean finishBean = jsonObj.getObject("after", DwdTransTransFinishBean.class); //补充运输时长字段 finishBean.setTransportTime(Long.parseLong(finishBean.getActualEndTime()) - Long.parseLong(finishBean.getActualStartTime())); //将运输结束时间转换为毫秒并-8小时 赋值给事件时间字段ts finishBean.setTs(Long.parseLong(finishBean.getActualEndTime()) - 8 * 60 * 60 * 1000L); //处理时间问题 说明:使用FlinkCDC读取MySQL表中DateTime类型的字段,会将读取的内容转换为时间毫秒数,并比实际时间大8小时 finishBean.setActualStartTime(DateFormatUtil.toYmdHms(Long.parseLong(finishBean.getActualStartTime()) - 8 * 60 * 60 * 1000L)); finishBean.setActualEndTime(DateFormatUtil.toYmdHms(Long.parseLong(finishBean.getActualEndTime()) - 8 * 60 * 60 * 1000L)); //脱敏 String driver1Name = finishBean.getDriver1Name(); String driver2Name = finishBean.getDriver2Name(); String truckNo = finishBean.getTruckNo(); driver1Name = driver1Name.charAt(0) + driver1Name.substring(1).replaceAll(".", "\\*"); driver2Name = driver2Name == null ? driver2Name : driver2Name.charAt(0) + driver2Name.substring(1).replaceAll(".", "\\*"); truckNo = DigestUtils.md5Hex(truckNo); finishBean.setDriver1Name(driver1Name); finishBean.setDriver2Name(driver2Name); finishBean.setTruckNo(truckNo); out.collect(JSON.toJSONString(finishBean)); } } );帮我注释
最新发布
03-08
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值