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));
    }
  }
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 ) ) ; } }
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