I am trying to write a custom ObjectInspector extending the StructObjectInspector and got a little confused about the use of the getStructFieldData method on the inspector. Looking at the definition of the method:
public Object getStructFieldData(Object data, StructField fieldRef); I understand that the use of this method is to retrieve the specific given field from the buffer. However, what I don't understand is what is it expected to return. I looked around the tests and related code and mostly stuff returned was either a LazyPrimitive or a LazyNonPrimitive, but I couldn't find anything that enforces this(specially given that the return type is a plain "Object")! Does this mean that I am free to return even my custom object as a return type of this method? If so, what is the guarantee that it will be interpreted correctly down the pipeline? Thanks, -- Swarnim