在处理函数之后,键控流是否变为非键控?

Is a keyed stream become not keyed after a process function?

假设我在键控过程后得到一个流。

DataStream<T> stream= sourceStream.keyBy(key).window(window).apply(function);

生成的流是否仍然是键控的?我可以在该流中使用一些 Keyed 状态吗?

没错,键控 window 或键控处理函数的输出不再是键控流。 Flink 无法知道您执行的计算是否会保留事先存在的分区。

要使用键控状态,您需要重新对流进行键控,或者如果您确定原始键控已被保留,您可以使用 reinterpretAsKeyedStream 通知 Flink 流仍然键控。