我可以在同一个RDD上调用UpdateStateByKey两次。我的要求如下。
我尝试将第2步的结果分配给VAR并将其重新分配给步骤4中的更新值。但似乎它不起作用。我是新手,不知道这种行为是如何可行的。
感谢任何帮助。
答案 0 :(得分:0)
我通过在状态更新方法开始时第二次调用updateStateByKey()来实际执行清理时解决了这个问题。一个小例子:
private static Optional<State> updateState(
final List<Events> allEvents,
final Optional<State> state) {
State state = state.or(State::new);
state.clearAccumulatedValues();
// Do some work...
state.addValue("Purple Elephants!");
return Optional.fromNullable(state.isEmpty() ? null : state);
}