最近在改业务代码,以前都图省事了全部用tuple,
代码经常出现DataStream<Tuple2<Tuple7<String,String,String,String,String,String,String>,Integer>>
,发现后期
很难维护,时间久了,也不一目了解每个string代表什么意思。
全部改为Java POJO方式。
例如下面代码
DataStream<Tuple2<ItemIdWithAction, Integer>> itemWindowStream = itemClickedStream.map(new ItemIdClickMapFunction()).keyBy(0).window(SlidingProcessingTimeWindows.of(Time.minutes(60 * 2), Time.seconds(30))).sum(1);
map(new ItemIdClickMapFunction()) 返回是 DataStream<Tuple2<ItemIdWithAction, Integer>> 流,我想按keyBy(ItemIdWithAction)去分组,但发生报错。
查下下KeyBy的api
如果POJO作为key,必须重写ItemIdWithAction的hash
import lombok.Data;
import java.util.Objects;
@Data
public class ItemIdWithAction{
private String itemId;
private String action;
@Override
public boolean equals(Obje