我有一个像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()
后连续执行。