Search in sources :

Example 1 with ExternalSortGroupByRunGenerator

use of org.apache.hyracks.dataflow.std.group.sort.ExternalSortGroupByRunGenerator in project asterixdb by apache.

the class SortGroupbyTest method initial.

@Override
protected void initial(final IHyracksTaskContext ctx, int tableSize, final int numFrames) throws HyracksDataException {
    builder = new ExternalSortGroupByRunGenerator(ctx, keyFields, inRecordDesc, numFrames, keyFields, normalizedKeyComputerFactory, comparatorFactories, partialAggrInState, outputRec, Algorithm.QUICK_SORT);
    mergerOperator = new AbstractUnaryOutputSourceOperatorNodePushable() {

        @Override
        public void initialize() throws HyracksDataException {
            List<GeneratedRunFileReader> runs = builder.getRuns();
            ISorter sorter = builder.getSorter();
            IBinaryComparator[] comparators = new IBinaryComparator[comparatorFactories.length];
            for (int i = 0; i < comparatorFactories.length; ++i) {
                comparators[i] = comparatorFactories[i].createBinaryComparator();
            }
            INormalizedKeyComputer nmkComputer = normalizedKeyComputerFactory == null ? null : normalizedKeyComputerFactory.createNormalizedKeyComputer();
            AbstractExternalSortRunMerger merger = new ExternalSortGroupByRunMerger(ctx, sorter, runs, keyFields, inRecordDesc, outputRec, outputRec, numFrames, writer, keyFields, nmkComputer, comparators, partialAggrInState, finalAggrInState, true);
            merger.process();
        }
    };
}
Also used : INormalizedKeyComputer(org.apache.hyracks.api.dataflow.value.INormalizedKeyComputer) AbstractUnaryOutputSourceOperatorNodePushable(org.apache.hyracks.dataflow.std.base.AbstractUnaryOutputSourceOperatorNodePushable) AbstractExternalSortRunMerger(org.apache.hyracks.dataflow.std.sort.AbstractExternalSortRunMerger) List(java.util.List) ExternalSortGroupByRunMerger(org.apache.hyracks.dataflow.std.group.sort.ExternalSortGroupByRunMerger) ExternalSortGroupByRunGenerator(org.apache.hyracks.dataflow.std.group.sort.ExternalSortGroupByRunGenerator) HyracksDataException(org.apache.hyracks.api.exceptions.HyracksDataException) ISorter(org.apache.hyracks.dataflow.std.sort.ISorter)

Aggregations

List (java.util.List)1 INormalizedKeyComputer (org.apache.hyracks.api.dataflow.value.INormalizedKeyComputer)1 HyracksDataException (org.apache.hyracks.api.exceptions.HyracksDataException)1 AbstractUnaryOutputSourceOperatorNodePushable (org.apache.hyracks.dataflow.std.base.AbstractUnaryOutputSourceOperatorNodePushable)1 ExternalSortGroupByRunGenerator (org.apache.hyracks.dataflow.std.group.sort.ExternalSortGroupByRunGenerator)1 ExternalSortGroupByRunMerger (org.apache.hyracks.dataflow.std.group.sort.ExternalSortGroupByRunMerger)1 AbstractExternalSortRunMerger (org.apache.hyracks.dataflow.std.sort.AbstractExternalSortRunMerger)1 ISorter (org.apache.hyracks.dataflow.std.sort.ISorter)1