Hello,
I have a window processing 10 objects at a time, and creating 1 as a result. The problem is in order to create that object I need the object from the previous window. I'm doing this: stream .keyBy(...some key...) .countWindow(10, 1) .apply(...creates an element A...) .keyBy(...same key as above...) .countWindow(2, 1) .apply(...updates A with the value of the previous element A...) .addSink(...) Probably there is a way to retrieve the last collected object inside the first .apply(), or to cache it somehow. Is there a better way to achieve the same? How inefficient is this? Regards, Matt |
Just to be clear, the stream is of String elements. The first part of the pipeline (up to the first .apply) receives those strings, and returns objects of another class ("A" let's say). On Thu, Dec 22, 2016 at 6:04 PM, Matt <[hidden email]> wrote:
|
I'm still looking for an answer to this question. Hope you can give me some insight! On Thu, Dec 22, 2016 at 6:17 PM, Matt <[hidden email]> wrote:
|
Hi Matt, I think your approach should be fine. It only cost one serialization / deserialization step. 2017-01-05 10:06 GMT+01:00 Matt <[hidden email]>:
|
Hi, I think your approach with two window() operations is fine. There is no way to retrieve the result from a previous window because it is not strictly defined what the previous window is. Also, keeping data inside your user functions (in fields) is problematic because these function instances are reused to process elements for several different keys. Cheers, Aljoscha On Thu, 5 Jan 2017 at 11:09 Fabian Hueske <[hidden email]> wrote:
|
Free forum by Nabble | Edit this page |