Вы можете использовать методы
/**
* Update the state value for the key.
*
* @param key name of the key
* @param value state value of the key
*/
void putState(String key, ByteBuffer value);
и
/**
* Retrieve the state value for the key.
*
* @param key name of the key
* @return the state value for the key.
*/
ByteBuffer getState(String key);
объекта контекста для достижения этой цели, пока вы координируете ключ, который будете использоватьмежду функциями. Функция агрегирования будет выполнять вычисления и сохранять данные, используя метод putState и предварительно определенный ключ, например:
public class AggregateFunction implements Function<String, Void> {
@Override
public Void process(String input, Context context) {
ByteBuffer value;
// Calculate value and place in ByteBuffer
context.putState("PRE-DETERMINED-KEY", value);
}
}
функции-потребители могут затем получить доступ к этому значению следующим образом:;
public class ConsumingFunction implements Function<String, String> {
@Override
public String process(String input, Context context) {
ByteBuffer value = context.gettState("PRE-DETERMINED-KEY");
// Perform logic based on the value.
return "";
}
}