我正在从Kafka接收消息,每条消息都包含其自己的嵌入式历史时间戳记。
我的目标是能够基于这些历史时间戳使用滑动窗口计算,而不是依靠系统时间(当前时间)。
因此,我想我们需要扩展DStream
:
class MyDStreamTimestampAware extends DStream {
public MyDStreamTimestampAware(StreamingContext ssc, ClassTag evidence$1) {
super(ssc, evidence$1);
}
@Override
public Duration slideDuration() {
// TO-DO...
return null;
}
@Override
public scala.collection.immutable.List<DStream<?>> dependencies() {
// TO-DO...
return null;
}
@Override
public Option<RDD> compute(Time validTime) {
// TO-DO...
return null;
}
}
任何想法/计划可以在这里实现什么?
基本上,我们需要购买windowStart < message timestamp < windowEnd