Flink,如果多条记录满足条件,minBy 或 maxBy 的行为是什么



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

谢谢你的帮助。

请注意,从FLIP-134开始,数据流上的所有这些关系方法,即Windowed/KeyedStream#sum,min,max,minBy,maxBy,都计划弃用。整个数据集API也计划最终被弃用。

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

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

DataSet#maxBy的javadoc表示

如果在指定字段中存在多个具有最大值的值,则将选择。

AllWindowedStream#maxBy(int positionToMaxBy)KeyedStream#maxBy(int positionToMaxBy)的javadocs说

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

AllWindowedStream#maxBy(int positionToMaxBy, boolean first)AllWindowedStream#maxBy(int positionToMaxBy, boolean first)的javadocs解释了

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

相关内容

  • 没有找到相关文章

最新更新