in src/main/java/org/apache/datasketches/pig/sampling/ReservoirUnion.java [123:151]
public Schema outputSchema(final Schema input) {
if (input != null && input.size() > 0) {
try {
Schema source = input;
// if we have a bag, grab one level down to get a tuple
if (source.size() == 1 && source.getField(0).type == DataType.BAG) {
source = source.getField(0).schema;
}
if (source.size() == 1 && source.getField(0).type == DataType.TUPLE) {
source = source.getField(0).schema;
}
final List<Schema.FieldSchema> fields = source.getFields();
if (fields.size() == 3
&& fields.get(0).type == DataType.LONG
&& fields.get(1).type == DataType.INTEGER
&& fields.get(2).type == DataType.BAG) {
return new Schema(new Schema.FieldSchema(getSchemaName(this
.getClass().getName().toLowerCase(), source), source, DataType.TUPLE));
}
} catch (final FrontendException e) {
throw new RuntimeException(e);
}
}
return null;
}