我有一个由byte []键入的主题,我想重新分区并通过邮件正文中字段中的另一个键处理主题。
我发现有KGroupedStream
和groupby
功能。但它要求聚合函数转换为KTable / KStream。我不需要聚合。我只想重新分区并处理输出。
答案 0 :(得分:3)
是的,你可以。您设置了一个新密钥,然后通过另一个主题管道数据。
KStream stream = ...
KStream repartionedStream = stream.selectKey(...)
.through("topic-name");
请注意,在使用所需数量的分区启动应用程序之前,您需要创建在through()
中使用的主题。
答案 1 :(得分:0)
不确定这是否完全符合犹太标准,但可以正常工作,并且自动创建重新分区主题,并使用stream
分配正确数量的分区。
KTable emptyTable = someTable.filter((k, v) -> false);
KStream stream = ...
KStream repartionedStream = stream.selectKey(...)
.leftJoin(emptyTable, (v, Null) -> v, ...);