Apache flink 弗林克,什么';如果多条记录满足条件,则为minBy或maxBy的行为

Apache flink 弗林克,什么';如果多条记录满足条件,则为minBy或maxBy的行为,apache-flink,flink-streaming,Apache Flink,Flink Streaming,我是Flink的新手,我想知道如果有多条记录具有最小值,minBy的行为是什么(maxBy的猜测是相同的)。我注意到Flink在这种情况下只输出一条记录,但哪一条?第一个,最后一个还是随机的 感谢您的帮助。请注意,在数据流上的所有这些关系方法中,即窗口化/KeyedStream#sum、min、max、minBy、maxBy都计划弃用。整个数据集API也计划最终被弃用 对此类关系方法的唯一长期支持是由表和SQLAPI提供的 但是为了回答你的问题,minBy和maxBy的工作方式是一样的 数据集的

我是Flink的新手,我想知道如果有多条记录具有最小值,minBy的行为是什么(maxBy的猜测是相同的)。我注意到Flink在这种情况下只输出一条记录,但哪一条?第一个,最后一个还是随机的

感谢您的帮助。

请注意,在数据流上的所有这些关系方法中,即
窗口化/KeyedStream#sum、min、max、minBy、maxBy
都计划弃用。整个数据集API也计划最终被弃用

对此类关系方法的唯一长期支持是由表和SQLAPI提供的

但是为了回答你的问题,minBy和maxBy的工作方式是一样的

数据集的javadoc#maxBy

如果指定字段中存在多个最大值的值,则将随机选择一个值 精选的

AllWindowedStream#maxBy(int-positionToMaxBy)
KeyedStream#maxBy(int-positionToMaxBy)

如果多个元素具有相同的最大值,则默认情况下,运算符返回第一个元素

AllWindowedStream#maxBy(int-positionToMaxBy,boolean-first)
AllWindowedStream#maxBy(int-positionToMaxBy,boolean-first)
的javadocs解释了这一点

如果[first为]true,则运算符返回具有最大值的第一个元素, 否则返回最后一个