如何根据多个键对数据集进行分组?
How to group a DataSet on multiple keys?
我有一个 Dataset
的 HashMap,我已经对其中一个键执行了 groupBy
。现在我想在已经分组的 DataSet
上再执行一个(或多个)groupBy
(即嵌套或链式 groupBy
)
例如,我想要这样的东西:
data.groupBy(_("a")).groupBy(_("b")).reducegroup {....}
我怎样才能做到这一点?
Flink 不支持嵌套groupBy
。
但是,您可以对复合键进行分组
val data: (Int, Int, Long) = ???
val res = data.groupBy(0, 1).reduce(...)
在您的示例中,您使用的是不能在复合键中使用的 KeySelectors。相反,您可以定义一个 returns 两个键作为 Tuple2
.
的 KeySelector
data.groupBy(d => (d("a"), d("b")) ).reduce(...)
我有一个 Dataset
的 HashMap,我已经对其中一个键执行了 groupBy
。现在我想在已经分组的 DataSet
上再执行一个(或多个)groupBy
(即嵌套或链式 groupBy
)
例如,我想要这样的东西:
data.groupBy(_("a")).groupBy(_("b")).reducegroup {....}
我怎样才能做到这一点?
Flink 不支持嵌套groupBy
。
但是,您可以对复合键进行分组
val data: (Int, Int, Long) = ???
val res = data.groupBy(0, 1).reduce(...)
在您的示例中,您使用的是不能在复合键中使用的 KeySelectors。相反,您可以定义一个 returns 两个键作为 Tuple2
.
data.groupBy(d => (d("a"), d("b")) ).reduce(...)