如何在多个键上对数据集进行分组



我有一个HashMaps的Dataset,并且我对其中一个键执行了groupBy。现在,我想在已经分组的DataSet(即嵌套或链式的groupBy)上再执行一个(或多个)groupBy

例如,我想要这样的东西:

data.groupBy(_("a")).groupBy(_("b")).reducegroup {....}

我怎样才能做到这一点?

Flink中不支持嵌套的groupBy。然而,您可以在复合密钥上分组
val data: (Int, Int, Long) = ???
val res = data.groupBy(0, 1).reduce(...)

在您的示例中,您使用的是无法在组合键中使用的KeySelector。相反,您可以定义一个KeySelector,它将两个键都返回为Tuple2

data.groupBy(d => (d("a"), d("b")) ).reduce(...)

相关内容

  • 没有找到相关文章

最新更新