开发者社区> 问答> 正文

Scala列表的唯一最大元素

"我希望使用带有Scala的apache flink执行max函数,如果它是唯一的,则返回最大元素,否则返回-1。为了更好地理解,有一个例子如下:

2是列表[1,2,1]的函数的返回。

-1是list [3,3,1]函数的返回值,因为最大结果为3,但在此最大值列表中不是唯一的外观。

我认为我可以通过将所有元素放在seq上来做,但是这在flink之后不起作用,所以我尝试使用reduce,但是我没有成功"

展开
收起
flink小助手 2018-11-28 15:59:08 1770 0
1 条回答
写回答
取消 提交回答
  • flink小助手会定期更新直播回顾等资料和文章干货,还整合了大家在钉群提出的有关flink的问题及回答。

    "使用Flink API折叠列表。从(0,0)的元组开始。第一个是到目前为止的最大数量,第二个是您找到该数字的次数。

    当你找到一个大于元组_1的数字x时,你会创建一个元组(x,0)。如果找到小于x的数字,则忽略。如果你找到一个等于x的数字,那么递增元组的_2。

    在折叠结束时,您将有一个元组(x,y),其中x是最大数字,y是您找到该数字的次数。

    简单的if条件如何帮助你返回x或-1。

    编辑:Flink已弃用折叠功能。使用AggregateFunction遍历列表。"

    2019-07-17 23:16:48
    赞同 展开评论 打赏
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
JDK8新特性与生产-for“华东地区scala爱好者聚会” 立即下载
Just Enough Scala for Spark 立即下载
低代码开发师(初级)实战教程 立即下载