hive-protolib/src/main/java/com/streamsets/pipeline/stage/lib/hive/HiveMetastoreUtil.java
public static LinkedHashMap<String, HiveTypeInfo> getColumnNameType(Record metadataRecord) throws HiveStageCheckedException {
    LinkedHashMap<String, HiveTypeInfo> columnNameType = new LinkedHashMap<>();
    extractInnerMapFromTheList(
        metadataRecord,
        COLUMNS_FIELD,
        COLUMN_NAME,
        TYPE_INFO,
        true,
        columnNameType,
        new HiveStageCheckedException(Errors.HIVE_17, COLUMNS_FIELD, metadataRecord)
    );
    return columnNameType;
  }
public static LinkedHashMap<String, HiveTypeInfo> getColumnNameType(Record metadataRecord) throws HiveStageCheckedException {
    LinkedHashMap<String, HiveTypeInfo> columnNameType = new LinkedHashMap<>();
    extractInnerMapFromTheList(
        metadataRecord,
        COLUMNS_FIELD,
        COLUMN_NAME,
        TYPE_INFO,
        true,
        columnNameType,
        new HiveStageCheckedException(Errors.HIVE_17, COLUMNS_FIELD, metadataRecord)
    );
    return columnNameType;
  }
Extract column information from the column list in "/columns" field.<br>

Column Type Information should exist in this form: <br>
[{name:"column1", typeInfo:{"type": "string", "extraInfo": ""},
{name:"column2", typeInfo:{"type": "int", "extraInfo": ""}]

@param metadataRecord record which contains the {@link #COLUMNS_FIELD} and conform to the above structure.
@return Map of column name to column type
@throws HiveStageCheckedException if no column information exists or the record has invalid fields.