首页 > 解决方案 > kafka 流左连接,具有多对一映射

问题描述

以前,左连接作为值连接器(请注意:joiner.apply(..))只返回一条记录:

    KStream<String,Pair<String, Recipient>> joinedStream = aclInputStream
        .leftJoin(recipientTable,
                (recipientNotifyMsg,recipientDetail)->joiner.apply(recipientNotifyMsg,recipientDetail));

对于需求更改,此 joiner.apply(..) 返回记录列表。我很难进行多对一映射以更改 joiner.apply(..) [这是一个列表] 的输出并推入joinedStream [需要单个值]。试图做类似的事情:

.leftJoin(recipientTable,
                (recipientNotifyMsg,recipientDetail)->{
                  List<Pair<String, Recipient>> list = joiner.apply(recipientNotifyMsg,recipientDetail);
                  list.forEach(pair -> return pair);
                });

我可以在这里得到任何帮助吗?

标签: javalambdaapache-kafka

解决方案


推荐阅读