У меня есть объект A:
public class A {
String id;
List<String> otherIds;
SomeOtherObject object;
}
У меня есть поток kafka, который выглядит следующим образом:
KStream<Integer, A> inputStream
Мне нужно повторно набрать inputStream поток так, чтобы это было сейчас:
KStream<String, A> newStream
Где ключевой частью newStream является otherId из A.otherIds .
Для примера
Let's say, A is like : { id:1, otherIds:[ "ab","bc","ca"],OtherObject: obj1}.
And inputStream if like <1,A>,
Then the newStream should have:
<"ab",A>
<"bc", A>
<"ca",A>
Грубо говоря, чтобы понять, что я пытаюсь, это:
KStream<String, A> newStream =
inputStream
.map((key,val) ->
val.getOtherIds().stream().forEach(e->
KeyValue.pair(e,val))
);
Есть ли способ сделать это (Rekeying, выбравключ из списка значений)?