code: void splitKeyVal(byte[] line, Text key, Text val) throws IOException {
      int pos = UTF8ByteArrayUtils.findNthByte(line, (byte)this.getFieldSeparator(), this.getNumOfKeyFields());
      try {
        if (pos == -1) {
          key.set(line);
          val.set("");
        } else {
          UTF8ByteArrayUtils.splitKeyVal(line, key, val, pos);
        }
      } catch (CharacterCodingException e) {
        LOG.warn(StringUtils.stringifyException(e));
      }
    }
docs: Split a line into key and value. Assume the delimitor is a tab.
  @param line: a byte array of line containing UTF-8 bytes
  @param key: key of a record
  @param val: value of a record
  @throws IOException