在 Hazelcast 中将 BatchStage<List<Object>> 转换为 BatchStage<Object>

问题描述

在我的 hazelcast jet 应用程序中,我正在执行分组连接,然后我得到了结果 BatchStage 格式,但我想将其转换为 BatchStage,我尝试过 flatMap,但它覆盖了一些我不希望的键,我希望将所有对象单独存储。

我的代码:

BatchStage<Object> bd = jdbcBatchStageData.flatMap(list -> Traversers.traverseArray(list.toArray()));

我知道 flatMap 会替换一些键,但是如何在 BatchStage 中单独存储所有对象,以便它们不会覆盖任何键。

Object 等于 Map

解决方法

根据您的数据形式(您没有提供),这里的建议可能需要进行一些调整:


jdbcBatchStageData.flatMap(list -> Traversers.traverseArray(list.toArray()))
  .groupingKey(ByKey)
  .aggregate(AggregateOperations.toList())
  1. Flat 将不同的列表映射为单独的项目
  2. 按键分组(需要定义ByKey函数`
  3. 聚合结果,这样你就得到了一批 Map.Entry<K,List>

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...