我有一个对象坐标流(时间,x,y),我想将它转换为一个距离流然后转换为速度流。要做到这一点,我需要每次处理两个连续的消息。
您能否告诉我如何在点之间创建欧几里德距离流?
答案 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
)。