private Schema createAvroSchema(TypeInfo typeInfo) {
    Schema schema = null;
    switch (typeInfo.getCategory()) {
      case PRIMITIVE:
        schema = createAvroPrimitive(typeInfo);
        break;
      case LIST:
        schema = createAvroArray(typeInfo);
        break;
      case MAP:
        schema = createAvroMap(typeInfo);
        break;
      case STRUCT:
        schema = createAvroRecord(typeInfo);
        break;
      case UNION:
        schema = createAvroUnion(typeInfo);
        break;
    }

    return wrapInUnionWithNull(schema);
  }
Converts Hive schema to avro schema

@param columnNames Names of the hive columns
@param columnTypes Hive Column types
@param namespace   Namespace of Avro schema
@param name        Avro schema name
@param doc         Avro schema doc
@return Avro Schema
serde/src/java/org/apache/hadoop/hive/serde2/avro/TypeInfoToSchema.java