有一种方法可以使用Kafka流来透视/取消枢轴(爆炸,移动)流?
如果我有输入流
machineId ts VarName VarValue
m1 2017-10-01 00:00:00 var1 1.0
m1 2017-10-01 00:00:00 var2 2.0
m2 2017-10-01 00:00:00 var1 3.0
m2 2017-10-01 00:00:00 var3 4.0
m3 2017-10-01 00:00:00 var4 5.0
...
我想要一种方法来获取输出流
machineId ts Vars
m1 2017-10-01 00:00:00 [[var1, 1.0], [var2, 2.0]]
m2 2017-10-01 00:00:00 [[var1, 3.0], [var3, 4.0]]
m3 2017-10-01 00:00:00 [[var4, 5.0]]
...
您可以使用输出类型为 List
的聚合。类似的东西
KStream<MachineId, V> inputStream = ...
KTable<MachineId, List<V>> result = inputStream.groupByKey()
.aggregate(...);
Initializer
返回一个空List<V>
,Aggregator
会将值追加到列表中。
有关更多详细信息,请查看文档和示例:
- https://docs.confluent.io/current/streams/developer-guide.html#aggregating
- https://github.com/confluentinc/kafka-streams-examples