@Override
 public IOperatorNodePushable createPushRuntime(
     IHyracksTaskContext ctx,
     IRecordDescriptorProvider recordDescProvider,
     int partition,
     int nPartitions) {
   return new DeserializedOperatorNodePushable(
       ctx,
       new FileWriteOperator(partition),
       recordDescProvider.getInputRecordDescriptor(getActivityId(), 0));
 }
 @Override
 public IOperatorNodePushable createPushRuntime(
     final IHyracksTaskContext ctx,
     final IRecordDescriptorProvider recordDescProvider,
     final int partition,
     int nPartitions)
     throws HyracksDataException {
   return new ExternalGroupBuildOperatorNodePushable(
       ctx,
       new TaskId(getActivityId(), partition),
       keyFields,
       framesLimit,
       comparatorFactories,
       firstNormalizerFactory,
       aggregatorFactory,
       recordDescProvider.getInputRecordDescriptor(getActivityId(), 0),
       recordDescriptors[0],
       spillableTableFactory);
 }