如何透视/un透视流



有一种方法可以使用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

相关内容

  • 没有找到相关文章

最新更新