问题描述
在我的 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())
- Flat 将不同的列表映射为单独的项目
- 按键分组(需要定义
ByKey
函数` - 聚合结果,这样你就得到了一批
Map.Entry<K,List>