code: public SimpleJob setJoin(String[] masterLabels, String masterColumn, String dataColumn,
                               String masterPath, String separator, boolean regex, int threshold) throws IOException, URISyntaxException {
          if (regex) {
              return setSimpleJoin(masterLabels, masterColumn, dataColumn,
                                   masterPath, separator, regex);
          }
  
          String javaOpt = conf.get("mapred.child.java.opts");
          String xmx = StringUtil.getXmx(javaOpt);
          int xmxSize = SizeUtils.xmx2MB(xmx);
          int masterSize = SizeUtils.byte2Mbyte(pathUtils.getFileSize(masterPath));
  
          int freeSize = xmxSize - DEFALUT_CHILD_MEM_SIZE - masterSize;
          if (freeSize < threshold) {
              return setBigJoin(masterLabels, masterColumn, dataColumn, masterPath, separator);
          }
  
          return setSimpleJoin(masterLabels, masterColumn, dataColumn,
                               masterPath, separator, regex);
      }
docs: This method is to determine automatically join the Simple and Big.
  @param masterLabels label of master data
  @param masterColumn master column
  @param dataColumn data column
  @param masterPath master data HDFS path
  @param separator separator
  @param regex master join is regex
  @param threshold auto join threshold size(MB). Default 600MB.
  @return this
  @throws URISyntaxException
  @throws IOException