处理连续的消息

时间:2018-02-19 15:27:02

标签: apache-flink flink-streaming

我有一个对象坐标流(时间,x,y),我想将它转换为一个距离流然后转换为速度流。要做到这一点,我需要每次处理两个连续的消息。

您能否告诉我如何在点之间创建欧几里德距离流?

1 个答案:

答案 0 :(得分:2)

DataStream<Distance> distances = yourCoordinateSource
            .windowAll(GlobalWindows.create())
            .trigger(PurgingTrigger.of(CountTrigger.of(2)))
            .process(new DistanceFunction());

DataStream<Speed> speeds = distances.map(new SpeedFunction())...

您可以链接处理DataStream s。

要访问两条消息,您可以创建2条消息的固定大小窗口,然后将处理功能应用于窗口。

假设您的信息流未加密,请使用windowAll()

您必须实施DistanceFunction(扩展ProcessWindowFunction)和SpeedFunction(扩展MapFunction)。