java Hazelcast多个左连接对两个都不起作用它工作正常
我是Hazelcast Jet的新手,我正在尝试加入4个数据,但join并没有按照公认的方式工作。我不确定我做错了什么,因为两个表工作正常。请帮忙 我的代码:
BatchStageWithKey<Object, Object> jdbcGroupByKey = batch1.groupingKey(jdbcData -> {
// logic for creating key
});
BatchStageWithKey<Object, Object> jdbcGroupByKey2 = batch2.groupingKey(jdbcData -> {
// logic for creating key
});
BatchStageWithKey<Object, Object> jdbcGroupByKey3 = batch3.groupingKey(jdbcData -> {
// logic for creating key
});
现在用left join连接两个
BatchStage<Entry<Object, Tuple2<Object, List<Object>>>> d = jdbcGroupByKey.aggregate2(AggregateOperations.pickAny(),jdbcGroupByKey1,AggregateOperations.toList());
这很好,但当我尝试使用多个时,它不起作用:
这里我将“d”转换为BatchStage<Object>
BatchStage<Entry<Object, Tuple2<Object, List<Object>>>> d2 = d1.aggregate2(AggregateOperations.pickAny(),jdbcGroupByKey1,AggregateOperations.toList());
这只是一个例子,可能有5个表,所以不能使用Tuple3,所以我可以做什么,请帮助
# 1 楼答案
如果要聚合的输入超过3个,则应使用
aggregate3()
或aggregateBuilder()
。您在示例中所做的是聚合聚合的输出。你也可以这样做,但效率较低。它看起来是这样的:(代码未编译,可能有错误,但希望您能理解。)