--- hive-0.12.0-cdh5.1.2.orig/src/serde/src/java/org/apache/hadoop/hive/serde2/avro/AvroDeserializer.java 2014-08-25 22:48:05.000000000 -0400 +++ hive-0.12.0-cdh5.1.2/src/serde/src/java/org/apache/hadoop/hive/serde2/avro/AvroDeserializer.java 2014-09-21 21:17:37.087223770 -0400 @@ -266,9 +266,10 @@ return null; } - return worker(datum, fileSchema == null ? null : fileSchema.getTypes().get(tag), schema, - SchemaToTypeInfo.generateTypeInfo(schema)); - + if ((fileSchema != null) && fileSchema.getType().equals(Schema.Type.UNION)) + return worker(datum, fileSchema.getTypes().get(tag), schema, SchemaToTypeInfo.generateTypeInfo(schema)); + else + return worker(datum, fileSchema, schema, SchemaToTypeInfo.generateTypeInfo(schema)); }