Hi,
I am trying to implement an iterative application, which, in high level, looks like this:
initialState = readSomeInput
otherInput = readSomeOtherInput
for 1 to max_iterations do:
filteredInput = otherInput.filter(predicate_on_aggregator_value);
updatedState = state.join(filteredInput)....other_operators_with_aggregator
closeWith(updatedState)
A computation inside the step function updates an aggregator value, which I want to use in the next iteration to filter out tuples from otherInput.
When I tried this, I got the error "This stub is not part of an iteration step function", when attempting to read the iteration aggregator value inside the filter operation.
Is there a way to include an operator inside the iteration, if it doesn't have the IterativeDataSet as predecessor? Or do you see any way around this?
I also tried implementing this using a delta iteration and setting otherInput as the workset, but then my program fails with the compiler exception "No plan meeting the requirements could be created @ Workset Iteration (1:null)(2:null). Most likely reason: Too restrictive plan hints." What does this error mean?
My second question has to do with computing a dataset that is not "consumed" by any operator. I want to perform a join so that I can compute some aggregate value, but I don't need the output of the join itself.
Is it possible to do something like that?
Thanks a lot!
Cheers,
V.