如何在flink中求和函数的元素个数?

ttygqcqt  于 2021-06-25  发布在  Flink
关注(0)|答案(1)|浏览(381)

我想得到求和函数中元素的个数。例子:

val counts = text.flatMap { _.toLowerCase.split("\\W+") }
      .map { (_, 1) }
      .keyBy(0)
      .timeWindow(Time.minutes(10))
      .sum(1)

输出:

hello : 4
world : 2
foo : 8
my : 5

我要把数字作为输出 4 对应于元素的数量。我找不到像这样的函数 count

wljmcqd8

wljmcqd81#

内置的聚合函数不是很灵活。只有 sum , min , max , minBy ,和 maxBy . 这些仅适用于元组类型,不能组合。
如果您想做任何超出一个简单聚合的事情,就必须实现一个定制的 ReduceFunction 或者 AggregateFunction . 另一个选择是查看表api或sql,它们也支持组窗口。

相关问题