如何使用 Java lamda 仅窗口 Kafka Streams 中的输入



我有使用 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(...)功能。

相关内容

  • 没有找到相关文章

最新更新