Search in sources :

Example 1 with ListAggWsWithRetractAccumulator

use of org.apache.flink.table.runtime.functions.aggregate.ListAggWsWithRetractAggFunction.ListAggWsWithRetractAccumulator in project flink by apache.

the class ListAggWsWithRetractAggFunctionTest method retractValues.

@Override
protected void retractValues(ListAggWsWithRetractAccumulator accumulator, List<StringData> values) throws NoSuchMethodException, InvocationTargetException, IllegalAccessException {
    AggregateFunction<StringData, ListAggWsWithRetractAccumulator> aggregator = getAggregator();
    Method retractFunc = getRetractFunc();
    Preconditions.checkArgument(values.size() % 2 == 0, "number of values must be an integer multiple of 2.");
    for (int i = 0; i < values.size(); i += 2) {
        StringData value = values.get(i + 1);
        StringData delimiter = values.get(i);
        retractFunc.invoke(aggregator, accumulator, delimiter, value);
    }
}
Also used : ListAggWsWithRetractAccumulator(org.apache.flink.table.runtime.functions.aggregate.ListAggWsWithRetractAggFunction.ListAggWsWithRetractAccumulator) Method(java.lang.reflect.Method) StringData(org.apache.flink.table.data.StringData)

Example 2 with ListAggWsWithRetractAccumulator

use of org.apache.flink.table.runtime.functions.aggregate.ListAggWsWithRetractAggFunction.ListAggWsWithRetractAccumulator in project flink by apache.

the class ListAggWsWithRetractAggFunctionTest method accumulateValues.

@Override
protected ListAggWsWithRetractAccumulator accumulateValues(List<StringData> values) throws NoSuchMethodException, InvocationTargetException, IllegalAccessException {
    AggregateFunction<StringData, ListAggWsWithRetractAccumulator> aggregator = getAggregator();
    ListAggWsWithRetractAccumulator accumulator = getAggregator().createAccumulator();
    Method accumulateFunc = getAccumulateFunc();
    Preconditions.checkArgument(values.size() % 2 == 0, "number of values must be an integer multiple of 2.");
    for (int i = 0; i < values.size(); i += 2) {
        StringData value = values.get(i + 1);
        StringData delimiter = values.get(i);
        accumulateFunc.invoke(aggregator, accumulator, delimiter, value);
    }
    return accumulator;
}
Also used : ListAggWsWithRetractAccumulator(org.apache.flink.table.runtime.functions.aggregate.ListAggWsWithRetractAggFunction.ListAggWsWithRetractAccumulator) Method(java.lang.reflect.Method) StringData(org.apache.flink.table.data.StringData)

Aggregations

Method (java.lang.reflect.Method)2 StringData (org.apache.flink.table.data.StringData)2 ListAggWsWithRetractAccumulator (org.apache.flink.table.runtime.functions.aggregate.ListAggWsWithRetractAggFunction.ListAggWsWithRetractAccumulator)2