I don't believe you can. The Trident windowing code seems to use
System.currentTimeMillis without allowing you to set a timestamp extractor.
If you want to add this functionality, you should look at
https://github.com/apache/storm/blob/21bb1388414d373572779289edc785c7e5aa52aa/storm-client/src/jvm/org/apache/storm/trident/windowing/InMemoryTridentWindowManager.java#L53,
and likely also the other implementation of ITridentWindowManager, and make
them use the windowManager.add(event, ts) method instead of
windowManager.add(event). You can consider using
https://github.com/apache/storm/blob/21bb1388414d373572779289edc785c7e5aa52aa/storm-client/src/jvm/org/apache/storm/topology/WindowedBoltExecutor.java#L310
for reference to how it works in regular Storm topologies.

Note that there doesn't seem to be a watermark event generator for the
Trident code either, so you may want to look at adding that as well.

Den fre. 23. nov. 2018 kl. 04.51 skrev 731635762 <mrche...@qq.com>:

> Hi All, I use storm-core  1.2.2, and there is my code:
>
> spoutStream.window(TumblingDurationWindow.of(new
> BaseWindowedBolt.Duration(10, TimeUnit.SECONDS)),
>                         new Fields("value"), new CountAsAggregator(), new
> Fields("record"));
>
> I can't find any API to specify window timestamp field.
>
> Can anyone tell me how to set timestamp field in trident
> TumblingDurationWindow?
>
>
> Any help is appreciated.
>
> Thanks,
> ChenBo
>
>

Reply via email to