super(operation); Configuration conf = operation.getParameters(); String localStrategy = conf.getString(Optimizer.HINT_LOCAL_STRATEGY, null); CrossHint hint = operation.getCrossHint();
@Override protected CrossOperatorBase<I1, I2, OUT, CrossFunction<I1, I2, OUT>> translateToDataFlow(Operator<I1> input1, Operator<I2> input2) { String name = getName() != null ? getName() : "Cross at " + defaultName; // create operator CrossOperatorBase<I1, I2, OUT, CrossFunction<I1, I2, OUT>> po = new CrossOperatorBase<I1, I2, OUT, CrossFunction<I1, I2, OUT>>(function, new BinaryOperatorInformation<I1, I2, OUT>(getInput1Type(), getInput2Type(), getResultType()), name); po.setFirstInput(input1); po.setSecondInput(input2); po.setParallelism(getParallelism()); po.setCrossHint(hint); return po; }
@Override protected List<OUT> executeOnCollections(List<IN1> inputData1, List<IN2> inputData2, RuntimeContext ctx, ExecutionConfig executionConfig) throws Exception { CrossFunction<IN1, IN2, OUT> function = this.userFunction.getUserCodeObject(); FunctionUtils.setFunctionRuntimeContext(function, ctx); FunctionUtils.openFunction(function, this.parameters); ArrayList<OUT> result = new ArrayList<OUT>(inputData1.size() * inputData2.size()); TypeSerializer<IN1> inSerializer1 = getOperatorInfo().getFirstInputType().createSerializer(executionConfig); TypeSerializer<IN2> inSerializer2 = getOperatorInfo().getSecondInputType().createSerializer(executionConfig); TypeSerializer<OUT> outSerializer = getOperatorInfo().getOutputType().createSerializer(executionConfig); for (IN1 element1 : inputData1) { for (IN2 element2 : inputData2) { IN1 copy1 = inSerializer1.copy(element1); IN2 copy2 = inSerializer2.copy(element2); OUT o = function.cross(copy1, copy2); result.add(outSerializer.copy(o)); } } FunctionUtils.closeFunction(function); return result; }
public CrossOperatorBase(UserCodeWrapper<FT> udf, BinaryOperatorInformation<IN1, IN2, OUT> operatorInfo, String name) { super(udf, operatorInfo, name); if (this instanceof CrossWithSmall) { setCrossHint(CrossHint.SECOND_IS_SMALL); } else if (this instanceof CrossWithLarge) { setCrossHint(CrossHint.FIRST_IS_SMALL); } }
public CrossOperatorBase(UserCodeWrapper<FT> udf, BinaryOperatorInformation<IN1, IN2, OUT> operatorInfo, String name) { super(udf, operatorInfo, name); if (this instanceof CrossWithSmall) { setCrossHint(CrossHint.SECOND_IS_SMALL); } else if (this instanceof CrossWithLarge) { setCrossHint(CrossHint.FIRST_IS_SMALL); } }
@Override protected CrossOperatorBase<I1, I2, OUT, CrossFunction<I1, I2, OUT>> translateToDataFlow(Operator<I1> input1, Operator<I2> input2) { String name = getName() != null ? getName() : "Cross at " + defaultName; // create operator CrossOperatorBase<I1, I2, OUT, CrossFunction<I1, I2, OUT>> po = new CrossOperatorBase<I1, I2, OUT, CrossFunction<I1, I2, OUT>>(function, new BinaryOperatorInformation<I1, I2, OUT>(getInput1Type(), getInput2Type(), getResultType()), name); po.setFirstInput(input1); po.setSecondInput(input2); po.setParallelism(getParallelism()); po.setCrossHint(hint); return po; }
super(operation); Configuration conf = operation.getParameters(); String localStrategy = conf.getString(Optimizer.HINT_LOCAL_STRATEGY, null); CrossHint hint = operation.getCrossHint();
public CrossOperatorBase(UserCodeWrapper<FT> udf, BinaryOperatorInformation<IN1, IN2, OUT> operatorInfo, String name) { super(udf, operatorInfo, name); if (this instanceof CrossWithSmall) { setCrossHint(CrossHint.SECOND_IS_SMALL); } else if (this instanceof CrossWithLarge) { setCrossHint(CrossHint.FIRST_IS_SMALL); } }
@Override protected List<OUT> executeOnCollections(List<IN1> inputData1, List<IN2> inputData2, RuntimeContext ctx, ExecutionConfig executionConfig) throws Exception { CrossFunction<IN1, IN2, OUT> function = this.userFunction.getUserCodeObject(); FunctionUtils.setFunctionRuntimeContext(function, ctx); FunctionUtils.openFunction(function, this.parameters); ArrayList<OUT> result = new ArrayList<OUT>(inputData1.size() * inputData2.size()); TypeSerializer<IN1> inSerializer1 = getOperatorInfo().getFirstInputType().createSerializer(executionConfig); TypeSerializer<IN2> inSerializer2 = getOperatorInfo().getSecondInputType().createSerializer(executionConfig); TypeSerializer<OUT> outSerializer = getOperatorInfo().getOutputType().createSerializer(executionConfig); for (IN1 element1 : inputData1) { for (IN2 element2 : inputData2) { IN1 copy1 = inSerializer1.copy(element1); IN2 copy2 = inSerializer2.copy(element2); OUT o = function.cross(copy1, copy2); result.add(outSerializer.copy(o)); } } FunctionUtils.closeFunction(function); return result; }
@Override protected CrossOperatorBase<I1, I2, OUT, CrossFunction<I1, I2, OUT>> translateToDataFlow(Operator<I1> input1, Operator<I2> input2) { String name = getName() != null ? getName() : "Cross at " + defaultName; // create operator CrossOperatorBase<I1, I2, OUT, CrossFunction<I1, I2, OUT>> po = new CrossOperatorBase<I1, I2, OUT, CrossFunction<I1, I2, OUT>>(function, new BinaryOperatorInformation<I1, I2, OUT>(getInput1Type(), getInput2Type(), getResultType()), name); po.setFirstInput(input1); po.setSecondInput(input2); po.setParallelism(getParallelism()); po.setCrossHint(hint); return po; }
super(operation); Configuration conf = operation.getParameters(); String localStrategy = conf.getString(Optimizer.HINT_LOCAL_STRATEGY, null); CrossHint hint = operation.getCrossHint();
@Override protected List<OUT> executeOnCollections(List<IN1> inputData1, List<IN2> inputData2, RuntimeContext ctx, ExecutionConfig executionConfig) throws Exception { CrossFunction<IN1, IN2, OUT> function = this.userFunction.getUserCodeObject(); FunctionUtils.setFunctionRuntimeContext(function, ctx); FunctionUtils.openFunction(function, this.parameters); ArrayList<OUT> result = new ArrayList<OUT>(inputData1.size() * inputData2.size()); TypeSerializer<IN1> inSerializer1 = getOperatorInfo().getFirstInputType().createSerializer(executionConfig); TypeSerializer<IN2> inSerializer2 = getOperatorInfo().getSecondInputType().createSerializer(executionConfig); TypeSerializer<OUT> outSerializer = getOperatorInfo().getOutputType().createSerializer(executionConfig); for (IN1 element1 : inputData1) { for (IN2 element2 : inputData2) { IN1 copy1 = inSerializer1.copy(element1); IN2 copy2 = inSerializer2.copy(element2); OUT o = function.cross(copy1, copy2); result.add(outSerializer.copy(o)); } } FunctionUtils.closeFunction(function); return result; }
super(operation); Configuration conf = operation.getParameters(); String localStrategy = conf.getString(Optimizer.HINT_LOCAL_STRATEGY, null); CrossHint hint = operation.getCrossHint();
super(operation); Configuration conf = operation.getParameters(); String localStrategy = conf.getString(Optimizer.HINT_LOCAL_STRATEGY, null); CrossHint hint = operation.getCrossHint();