Oh, this is for the indexing example. I actually think using CombiningState is more cleaner than ValueState.
https://github.com/apache/beam/blob/release-2.12.0/sdks/python/apache_beam/runners/portability/fn_api_runner_test.py#L262 (The fact that one must specify the accumulator coder is, however, unfortunate. We should probably infer that if we can.) On Thu, Apr 25, 2019 at 4:19 PM Robert Bradshaw <rober...@google.com> wrote: > > The desire was to avoid the implicit disallowed combination wart in > Python (until we could make sense of it), and also ValueState could be > surprising with respect to older values overwriting newer ones. What > was the specific example that was less natural? > > On Thu, Apr 25, 2019 at 3:01 PM Maximilian Michels <m...@apache.org> wrote: > > > > @Pablo: Thanks for following up with the PR! :) > > > > @Brian: I was wondering about this as well. It makes the Python state > > code a bit unnatural. I'd suggest to add a ValueState wrapper around > > ListState/CombiningState. > > > > @Robert: Like Reuven pointed out, we can disallow ValueState for merging > > windows with state. > > > > @Reza: Great. Let's make sure it has Python examples out of the box. > > Either Pablo or me could help there. > > > > Thanks, > > Max > > > > On 25.04.19 04:14, Reza Ardeshir Rokni wrote: > > > Pablo, Kenneth and I have a new blog ready for publication which covers > > > how to create a "looping timer" it allows for default values to be > > > created in a window when no incoming elements exists. We just need to > > > clear a few bits before publication, but would be great to have that > > > also include a python example, I wrote it in java... > > > > > > Cheers > > > > > > Reza > > > > > > On Thu, 25 Apr 2019 at 04:34, Reuven Lax <re...@google.com > > > <mailto:re...@google.com>> wrote: > > > > > > Well state is still not implemented for merging windows even for > > > Java (though I believe the idea was to disallow ValueState there). > > > > > > On Wed, Apr 24, 2019 at 1:11 PM Robert Bradshaw <rober...@google.com > > > <mailto:rober...@google.com>> wrote: > > > > > > It was unclear what the semantics were for ValueState for merging > > > windows. (It's also a bit weird as it's inherently a race > > > condition > > > wrt element ordering, unlike Bag and CombineState, though you can > > > always implement it as a CombineState that always returns the > > > latest > > > value which is a bit more explicit about the dangers here.) > > > > > > On Wed, Apr 24, 2019 at 10:08 PM Brian Hulette > > > <bhule...@google.com <mailto:bhule...@google.com>> wrote: > > > > > > > > That's a great idea! I thought about this too after those > > > posts came up on the list recently. I started to look into it, > > > but I noticed that there's actually no implementation of > > > ValueState in userstate. Is there a reason for that? I started > > > to work on a patch to add it but I was just curious if there was > > > some reason it was omitted that I should be aware of. > > > > > > > > We could certainly replicate the example without ValueState > > > by using BagState and clearing it before each write, but it > > > would be nice if we could draw a direct parallel. > > > > > > > > Brian > > > > > > > > On Fri, Apr 12, 2019 at 7:05 AM Maximilian Michels > > > <m...@apache.org <mailto:m...@apache.org>> wrote: > > > >> > > > >> > It would probably be pretty easy to add the corresponding > > > code snippets to the docs as well. > > > >> > > > >> It's probably a bit more work because there is no section > > > dedicated to > > > >> state/timer yet in the documentation. Tracked here: > > > >> https://jira.apache.org/jira/browse/BEAM-2472 > > > >> > > > >> > I've been going over this topic a bit. I'll add the > > > snippets next week, if that's fine by y'all. > > > >> > > > >> That would be great. The blog posts are a great way to get > > > started with > > > >> state/timers. > > > >> > > > >> Thanks, > > > >> Max > > > >> > > > >> On 11.04.19 20:21, Pablo Estrada wrote: > > > >> > I've been going over this topic a bit. I'll add the > > > snippets next week, > > > >> > if that's fine by y'all. > > > >> > Best > > > >> > -P. > > > >> > > > > >> > On Thu, Apr 11, 2019 at 5:27 AM Robert Bradshaw > > > <rober...@google.com <mailto:rober...@google.com> > > > >> > <mailto:rober...@google.com <mailto:rober...@google.com>>> > > > wrote: > > > >> > > > > >> > That's a great idea! It would probably be pretty easy > > > to add the > > > >> > corresponding code snippets to the docs as well. > > > >> > > > > >> > On Thu, Apr 11, 2019 at 2:00 PM Maximilian Michels > > > <m...@apache.org <mailto:m...@apache.org> > > > >> > <mailto:m...@apache.org <mailto:m...@apache.org>>> > > > wrote: > > > >> > > > > > >> > > Hi everyone, > > > >> > > > > > >> > > The Python SDK still lacks documentation on state > > > and timers. > > > >> > > > > > >> > > As a first step, what do you think about updating > > > these two blog > > > >> > posts > > > >> > > with the corresponding Python code? > > > >> > > > > > >> > > > > > https://beam.apache.org/blog/2017/02/13/stateful-processing.html > > > >> > > > > > https://beam.apache.org/blog/2017/08/28/timely-processing.html > > > >> > > > > > >> > > Thanks, > > > >> > > Max > > > >> > > > >