我有Dataset
个HashMaps,我在其中一个键上执行了groupBy
。现在,我想在已经分组的groupBy
上执行一次(或多次)DataSet
(即嵌套或链接的groupBy
种
例如,我想要这样的事情:
data.groupBy(_("a")).groupBy(_("b")).reducegroup {....}
我将如何做到这一点?
答案 0 :(得分:3)
Flink不支持嵌套groupBy
。
但是,您可以对复合键进行分组
val data: (Int, Int, Long) = ???
val res = data.groupBy(0, 1).reduce(...)
在您的示例中,您使用的是不能在复合键中使用的KeySelectors。相反,您可以定义一个KeySelector,将两个键都返回为Tuple2
。
data.groupBy(d => (d("a"), d("b")) ).reduce(...)