public static ObjectInspector createColumnarStructInspector( List<String> columnNames, List<TypeInfo> columnTypes) { ArrayList<ObjectInspector> columnObjectInspectors = new ArrayList<ObjectInspector>(columnTypes.size()); for (int i = 0; i < columnTypes.size(); i++) { columnObjectInspectors.add( LazyBinaryUtils.getLazyBinaryObjectInspectorFromTypeInfo(columnTypes.get(i))); } return ObjectInspectorFactory.getColumnarStructObjectInspector( columnNames, columnObjectInspectors); }
/* * (non-Javadoc) * * @see org.apache.hadoop.hive.serde2.AbstractSerDe#initialize(org.apache.hadoop.conf.Configuration, * java.util.Properties) */ @Override public void initialize(Configuration conf, Properties tbl) throws SerDeException { String columnNameProperty = tbl.getProperty(LIST_COLUMNS); String columnTypeProperty = tbl.getProperty(LIST_COLUMN_TYPES); List<String> columnNames = Arrays.asList(columnNameProperty.split(",")); List<TypeInfo> columnTypes = TypeInfoUtils.getTypeInfosFromTypeString(columnTypeProperty); List<ObjectInspector> columnObjectInspectors = new ArrayList<ObjectInspector>(columnNames.size()); ObjectInspector colObjectInspector; for (int col = 0; col < columnNames.size(); col++) { colObjectInspector = TypeInfoUtils.getStandardJavaObjectInspectorFromTypeInfo(columnTypes.get(col)); columnObjectInspectors.add(colObjectInspector); } cachedObjectInspector = ObjectInspectorFactory.getColumnarStructObjectInspector( columnNames, columnObjectInspectors); }