Hi,

can You guys tell me if below peice of two codes are returning the same thing?

(((DoubleObjectInspector) ins2).get(obj)); and (DoubleWritable)obj).get()from below two  codes


code 1)

public Object get(Object name) {
          int pos = getPos((String)name);
  if(pos<0) return null;
  String f = "string";
          Object obj= list.get(pos); 
  if(obj==null) return null;
  ObjectInspector ins = ((StructField)colnames.get(pos)).getFieldObjectInspector();
  if(ins!=null) f = ins.getTypeName();
  switch (f) {
    case "double" :  return ((DoubleWritable)obj).get();
            case "bigint" :  return ((LongWritable)obj).get();
            case "string" :  return ((Text)obj).toString();
    default  :  return obj; 
  }
}


Code 2)

public Object get(Object name) {

                int pos = getPos((String) name);

                if (pos < 0)

                        return null;

                String f = "string";

                String f1 = "string";

                Object obj = list.get(pos);

 

                if (obj == null)

                        return null;

                ObjectInspector ins = ((StructField) colnames.get(pos)).getFieldObjectInspector();

                if (ins != null)

                        f = ins.getTypeName();

 

 

                PrimitiveObjectInspector ins2 = (PrimitiveObjectInspector) ins;

                f1 = ins2.getPrimitiveCategory().name();

 

 

               switch (ins2.getPrimitiveCategory()) {

                case DOUBLE:

 

                        return (((DoubleObjectInspector) ins2).get(obj));

 

                case LONG:

 

                       return  (((LongObjectInspector) ins2).get(obj));

 

               case STRING:

                        return (((StringObjectInspector) ins2).getPrimitiveJavaObject(obj)).toString();

 

                default:    return obj;

                }

 }