@Override
  public Object deserialize(Writable writable) throws SerDeException {
    KuduWritable input = (KuduWritable) writable;
    List<Object> output = new ArrayList<>();
    for(int i  = 0; i < schema.getColumnCount(); i++) {
      // If the column isn't set, skip it.
      if (!input.isSet(i)) {
        continue;
      }
      Object javaObj = input.getValueObject(i);
      ColumnSchema col = schema.getColumnByIndex(i);
      PrimitiveTypeInfo typeInfo = toHiveType(col.getType(), col.getTypeAttributes());
      if (javaObj == null) {
        output.add(null);
      } else {
        switch (typeInfo.getPrimitiveCategory()) {
        case BOOLEAN:
          output.add(new BooleanWritable((boolean) javaObj));
          break;
        case BYTE:
          output.add(new ByteWritable((byte) javaObj));
          break;
        case SHORT:
          output.add(new ShortWritable((short) javaObj));
          break;
        case INT:
          output.add(new IntWritable((int) javaObj));
          break;
        case LONG:
          output.add(new LongWritable((long) javaObj));
          break;
        case TIMESTAMP:
          java.sql.Timestamp sqlTs = (java.sql.Timestamp) javaObj;
          Timestamp hiveTs = Timestamp.ofEpochMilli(sqlTs.getTime(), sqlTs.getNanos());
          output.add(new TimestampWritableV2(hiveTs));
          break;
        case DECIMAL:
          HiveDecimal hiveDecimal = HiveDecimal.create((BigDecimal) javaObj);
          output.add(new HiveDecimalWritable(hiveDecimal));
          break;
        case FLOAT:
          output.add(new FloatWritable((float) javaObj));
          break;
        case DOUBLE:
          output.add(new DoubleWritable((double) javaObj));
          break;
        case STRING:
          output.add(new Text((String) javaObj));
          break;
        case BINARY:
          output.add(new BytesWritable((byte[]) javaObj));
          break;
        default:
          throw new SerDeException("Unsupported type: " + typeInfo.getPrimitiveCategory());
        }
      }
    }
    return output;
  }
Deserialize an object out of a Writable blob.
kudu-handler/src/java/org/apache/hadoop/hive/kudu/KuduSerDe.java