如何在哈希图中存储 KStream 的对象类型值?



我有一个像KStream<String, Object>这样的KStream对象。 我想在哈希映射中获取对象的值,并在不同的 KStream 中处理后将其存储为值?

例如

KStream key ="first">

KStream value = {id=1, name="abc" age=12}

期望的结果 : HashMap hm ={id=1, name="abc" age=12}

看来你有一些概念上的误解。

KStream是对主题(以及其中的所有记录(的逻辑抽象。它允许您逐个处理这些记录。例如,您可以执行以下操作:

KStream stream = builder.stream(...);
stream.foreach((k, v) -> { /* your processing logic */});

我想在哈希图中获取对象的值

似乎您想在与KStream相同的范围内拥有HashMap。 但是,您不能从"外部"访问任何记录,而只能通过将运算符(如上例所示的foreach()(应用于KStream,以将一个KStream转换为新的"KStream"。

并在处理后将其存储为值 在不同的 KStream 中

请注意这是什么意思。您可以通过对一个KStream应用运算符来将其转换为新KStream。例如:

KStream result = kstream.map(...);

该程序将执行您传递给map()的函数,用于kstream中的每条记录,并将映射函数的结果记录附加到result。即,map()将每个输入记录转换为新的输出记录。

请注意,在定义处理时,基本上指定了一个数据流程序,该程序在调用KafkaStreams#start()后连续执行。

最新更新