Hi, I am having difficulty understanding why the AggregateUnaryOperator would need a corresponding AggregateOperator in the constructor. I am confused by the intent behind the following:
(Lines 69 and 73 in /Users/badrulchowdhury/code/systemds/src/main/java/org/apache/sysds/runtime/instructions/spark/AggregateUnarySPInstruction.java) InstructionUtils.deriveAggregateOperatorOpcode(opcode); AggregateOperator aop = InstructionUtils.parseAggregateOperator(aopcode, corrLoc.toString()); If I had to guess, I would say that UnaryAggregateOperator is for a single matrix block (unary) whereas AggregateOperator is for combining results from multiple matrix blocks (binary). At least that is what the following snippet from the processMatrixAggregate() method in the same file (Line 108) seems to suggest: JavaRDD<MatrixBlock> out2 = out.map( new RDDUAggFunction2(*auop*, mc.getBlocksize())); MatrixBlock out3 = RDDAggregateUtils.aggStable(out2, *aggop*); Would really appreciate it if somebody could confirm my suspicions or point me in the right direction. Thanks in advance! -Badrul
