0


【Flink】自定义keyBy的KeySelector

我们通常在写Flink程序的时候都会遇到keyBy,比如按照某条数据的某个字段进行分类计算,或者计算pv,还有需要用到Flink定时器的高级功能。

下面我们根据keyby的源码,看下keyBy的用法(本博客基于Flink1.13)

源码有5种方式定义keyBy, 但是其中的2种已经不用了,如果用户想灵活定义Flink分组计算的key,建议用第一种自定义KeySelector的方式

我们先来看下第一种keyBy的源码,需要自定义KeySelector

public <K> KeyedStream<T, K> keyBy(KeySelector<T, K> key) {
    Preconditions.checkNotNull(key);
    return new KeyedStream<>(this, clean(key));
}

然后我们再看下KeySelector的源码,是个接口,只有一个实现的方法,接口上有泛型,代表IN代表输入的数据的类型,KEY代表最后返回的key的类型

@Public
@FunctionalInterface
public interface KeySelector<IN, KEY> extends Function, Serializable {
    KEY getKey(IN va
标签: flink 大数据

本文转载自: https://blog.csdn.net/sinat_23225111/article/details/128238636
版权归原作者 一杯咖啡半杯糖 所有, 如有侵权,请联系我们删除。

“【Flink】自定义keyBy的KeySelector”的评论:

还没有评论