private List<OperatorDescriptorSingle> initPossibleProperties() { // check if we can work with a grouping (simple reducer), or if we need ordering because of a group order Ordering groupOrder = getOperator().getGroupOrder(); if (groupOrder != null && groupOrder.getNumberOfFields() == 0) { groupOrder = null; } OperatorDescriptorSingle props = (this.keys == null ? new AllGroupCombineProperties() : new GroupCombineProperties(this.keys, groupOrder)); return Collections.singletonList(props); }
GroupCombineFunction<IN, OUT> function = this.userFunction.getUserCodeObject(); UnaryOperatorInformation<IN, OUT> operatorInfo = getOperatorInfo(); TypeInformation<IN> inputType = operatorInfo.getInputType(); int[] keyColumns = getKeyColumns(0); int[] sortColumns = keyColumns; boolean[] sortOrderings = new boolean[sortColumns.length]; checkArgument(sortOrderings.length == 0); } else { final TypeComparator<IN> sortComparator = getTypeComparator(inputType, sortColumns, sortOrderings, executionConfig); TypeSerializer<OUT> outSerializer = getOperatorInfo().getOutputType().createSerializer(executionConfig); List<IN> inputDataCopy = new ArrayList<IN>(inputData.size()); for (IN in: inputData) { final TypeSerializer<IN> inputSerializer = inputType.createSerializer(executionConfig); boolean[] keyOrderings = new boolean[keyColumns.length]; final TypeComparator<IN> comparator = getTypeComparator(inputType, keyColumns, keyOrderings, executionConfig); TypeSerializer<OUT> outSerializer = getOperatorInfo().getOutputType().createSerializer(executionConfig); CopyingListCollector<OUT> collector = new CopyingListCollector<OUT>(result, outSerializer);
new GroupCombineOperatorBase<>(function, operatorInfo, new int[0], name); po.setInput(input); po.setParallelism(1); return po; UnaryOperatorInformation<IN, OUT> operatorInfo = new UnaryOperatorInformation<>(getInputType(), getResultType()); GroupCombineOperatorBase<IN, OUT, GroupCombineFunction<IN, OUT>> po = new GroupCombineOperatorBase<>(function, operatorInfo, logicalKeyPositions, name); po.setInput(input); po.setParallelism(getParallelism()); o.appendOrdering(sortKeyPositions[i], null, sortOrders[i]); po.setGroupOrder(o);
when(op.getSemanticProperties()).thenReturn(origProps); when(op.getKeyColumns(0)).thenReturn(new int[]{3,2}); when(op.getParameters()).thenReturn(new Configuration());
new GroupCombineOperatorBase<>(function, operatorInfo, new int[0], name); po.setInput(input); po.setParallelism(1); return po; UnaryOperatorInformation<IN, OUT> operatorInfo = new UnaryOperatorInformation<>(getInputType(), getResultType()); GroupCombineOperatorBase<IN, OUT, GroupCombineFunction<IN, OUT>> po = new GroupCombineOperatorBase<>(function, operatorInfo, logicalKeyPositions, name); po.setInput(input); po.setParallelism(getParallelism()); o.appendOrdering(sortKeyPositions[i], null, sortOrders[i]); po.setGroupOrder(o);
GroupCombineFunction<IN, OUT> function = this.userFunction.getUserCodeObject(); UnaryOperatorInformation<IN, OUT> operatorInfo = getOperatorInfo(); TypeInformation<IN> inputType = operatorInfo.getInputType(); int[] keyColumns = getKeyColumns(0); int[] sortColumns = keyColumns; boolean[] sortOrderings = new boolean[sortColumns.length]; checkArgument(sortOrderings.length == 0); } else { final TypeComparator<IN> sortComparator = getTypeComparator(inputType, sortColumns, sortOrderings, executionConfig); TypeSerializer<OUT> outSerializer = getOperatorInfo().getOutputType().createSerializer(executionConfig); List<IN> inputDataCopy = new ArrayList<IN>(inputData.size()); for (IN in: inputData) { final TypeSerializer<IN> inputSerializer = inputType.createSerializer(executionConfig); boolean[] keyOrderings = new boolean[keyColumns.length]; final TypeComparator<IN> comparator = getTypeComparator(inputType, keyColumns, keyOrderings, executionConfig); TypeSerializer<OUT> outSerializer = getOperatorInfo().getOutputType().createSerializer(executionConfig); CopyingListCollector<OUT> collector = new CopyingListCollector<OUT>(result, outSerializer);
private List<OperatorDescriptorSingle> initPossibleProperties() { // check if we can work with a grouping (simple reducer), or if we need ordering because of a group order Ordering groupOrder = getOperator().getGroupOrder(); if (groupOrder != null && groupOrder.getNumberOfFields() == 0) { groupOrder = null; } OperatorDescriptorSingle props = (this.keys == null ? new AllGroupCombineProperties() : new GroupCombineProperties(this.keys, groupOrder)); return Collections.singletonList(props); }
new GroupCombineOperatorBase<>(function, operatorInfo, new int[0], name); po.setInput(input); po.setParallelism(1); return po; UnaryOperatorInformation<IN, OUT> operatorInfo = new UnaryOperatorInformation<>(getInputType(), getResultType()); GroupCombineOperatorBase<IN, OUT, GroupCombineFunction<IN, OUT>> po = new GroupCombineOperatorBase<>(function, operatorInfo, logicalKeyPositions, name); po.setInput(input); po.setParallelism(getParallelism()); o.appendOrdering(sortKeyPositions[i], null, sortOrders[i]); po.setGroupOrder(o);
GroupCombineFunction<IN, OUT> function = this.userFunction.getUserCodeObject(); UnaryOperatorInformation<IN, OUT> operatorInfo = getOperatorInfo(); TypeInformation<IN> inputType = operatorInfo.getInputType(); int[] keyColumns = getKeyColumns(0); int[] sortColumns = keyColumns; boolean[] sortOrderings = new boolean[sortColumns.length]; checkArgument(sortOrderings.length == 0); } else { final TypeComparator<IN> sortComparator = getTypeComparator(inputType, sortColumns, sortOrderings, executionConfig); TypeSerializer<OUT> outSerializer = getOperatorInfo().getOutputType().createSerializer(executionConfig); List<IN> inputDataCopy = new ArrayList<IN>(inputData.size()); for (IN in: inputData) { final TypeSerializer<IN> inputSerializer = inputType.createSerializer(executionConfig); boolean[] keyOrderings = new boolean[keyColumns.length]; final TypeComparator<IN> comparator = getTypeComparator(inputType, keyColumns, keyOrderings, executionConfig); TypeSerializer<OUT> outSerializer = getOperatorInfo().getOutputType().createSerializer(executionConfig); CopyingListCollector<OUT> collector = new CopyingListCollector<OUT>(result, outSerializer);
private List<OperatorDescriptorSingle> initPossibleProperties() { // check if we can work with a grouping (simple reducer), or if we need ordering because of a group order Ordering groupOrder = getOperator().getGroupOrder(); if (groupOrder != null && groupOrder.getNumberOfFields() == 0) { groupOrder = null; } OperatorDescriptorSingle props = (this.keys == null ? new AllGroupCombineProperties() : new GroupCombineProperties(this.keys, groupOrder)); return Collections.singletonList(props); }
private List<OperatorDescriptorSingle> initPossibleProperties() { // check if we can work with a grouping (simple reducer), or if we need ordering because of a group order Ordering groupOrder = getOperator().getGroupOrder(); if (groupOrder != null && groupOrder.getNumberOfFields() == 0) { groupOrder = null; } OperatorDescriptorSingle props = (this.keys == null ? new AllGroupCombineProperties() : new GroupCombineProperties(this.keys, groupOrder)); return Collections.singletonList(props); }
private List<OperatorDescriptorSingle> initPossibleProperties() { // check if we can work with a grouping (simple reducer), or if we need ordering because of a group order Ordering groupOrder = getOperator().getGroupOrder(); if (groupOrder != null && groupOrder.getNumberOfFields() == 0) { groupOrder = null; } OperatorDescriptorSingle props = (this.keys == null ? new AllGroupCombineProperties() : new GroupCombineProperties(this.keys, groupOrder)); return Collections.singletonList(props); }