code: public Frame outputFrame(Key<Frame> key, String [] names, String [][] domains){
      Futures fs = new Futures();
      Frame res = closeFrame(key, names, domains, fs);
      if( key != null ) DKV.put(res,fs);
      fs.blockForPending();
      return res;
    }
docs: Get the resulting Frame from this invoked MRTask. If the passed in <code>key</code>
  is not null, then the resulting Frame will appear in the DKV. AppendableVec instances
  are closed into Vec instances, which then appear in the DKV.
  
  @param key If null, then the Frame will not appear in the DKV. Otherwise, this result
  will appear in the DKV under this key.
  @param names The names of the columns in the resulting Frame.
  @param domains The domains of the columns in the resulting Frame.
  @return null if _noutputs is 0, otherwise returns a Frame.