Java代码实现时的问题

Java代码实现时的问题

在Scala中

.withTimestampAssigner(new SerializableTimestampAssigner

换在java中实现,调用该方法总是出问题,于是我换作了

1
DataStream<Tuple2<String, Long>> watermarkStream = inputMap.assignTimestampsAndWatermarks(new AssignerWithPeriodicWatermarks<Tuple2<String, Long>>() {<br>    Long currentMaxTimestamp = 0L;<br>    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");<br>    @Nullable<br>    @Override<br>    public Watermark getCurrentWatermark() {<br>        return new Watermark(currentMaxTimestamp - 10000L);<br>    }<br><br>    @Override<br>    public long extractTimestamp(Tuple2<String, Long> stringLongTuple2, long l) {<br>        long timeStamp = stringLongTuple2.f1;<br>        currentMaxTimestamp = Math.max(currentMaxTimestamp, timeStamp);<br>        System.out.println("currentMaxTimeStamp: "+sdf.format(currentMaxTimestamp));<br>        return timeStamp;<br>    }<br>});<br>

请问老师如果在java中用SerializableTimestampAssigner的话应该如何操作?

# 具体错误:

http://img1.sycdn.imooc.com//climg/5ffc0c1a0982efe609150169.jpg

http://img1.sycdn.imooc.com//climg/5ffc0c290916ce3c12210039.jpg

好像是泛型引起的

正在回答

登陆购买课程后可参与讨论,去登陆

1回答

我在java中测试了一下,也是同样的问题,代码本身看起来是没有问题的,目前只能定义为flink提供的这个新的api对java代码支持的有问题,估计源码的bug


​new AssignerWithPeriodicWatermarks这种方式是之前的老API,这种方式是没问题的。


  • ischand #1

    在官方文档中,使用 Java 的话,此处的泛型是这么定义的:

    https://img1.sycdn.imooc.com//climg/6231cb72095be25413630773.jpg

    https://img1.sycdn.imooc.com//climg/6231cb9f0908905815690505.jpg

    2022-03-16 19:36:51
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师
插入代码