我有使用 Kafka 流获取的输入数据。我需要实现的只是一个 5 秒的翻转窗口,并将数据输出到 Kafka 主题。但是,我无法使用 lambda 完成此操作。有人可以帮忙吗?
以下是我写的内容,但我收到错误:
KTable<TimeWindowedKStream<String, String> , String> result = source.
groupByKey().windowedBy(TimeWindows.of(TimeUnit.DAYS.toMillis(5000)));
result.to(Serdes.String(), Serdes.Long(), "outputtopic");
final Topology topology = builder.build();
final KafkaStreams streams = new KafkaStreams(topology, props);
但是,对于结果变量 eclipse 给了我一个错误:"类型不匹配:无法从 TimeWindowedKStream 转换为 KTable,String>"。
同样,在将结果值写入另一个主题时,日食给了我错误:"类型KTable,String>中的(Serde>,Serde,String(的方法不适用于参数(Serde,Serde,String("。
据我了解,如果没有某种聚合,就无法实现窗口化。但是,我只想将每 5 秒窗口的数据输出到另一个输出主题。
"类型不匹配:无法从 TimeWindowedKStream 转换为 KTable,String>"。
您必须在TimeWindowedKStream
上调用一些聚合函数才能获得表,例如。 count()
, aggregate(...)
"KTable,String>类型中的 (Serde>, Serde, String( 方法不适用于参数 (Serde, Serde, String(">
您不能使用第一次调用KTable::toStream()
时KTable
写入主题。 返回KStream
具有to(...)
功能。