in datafu-pig/src/main/java/datafu/pig/sampling/WeightedSample.java [170:197]
public Schema outputSchema(Schema input) {
try {
if (!(input.size() == 2 || input.size() == 3))
{
throw new RuntimeException("Expected input to have two or three fields");
}
Schema.FieldSchema inputFieldSchema = input.getField(0);
if (inputFieldSchema.type != DataType.BAG) {
throw new RuntimeException("Expected a BAG as first input, got: "+inputFieldSchema.type);
}
if (input.getField(1).type != DataType.INTEGER) {
throw new RuntimeException("Expected an INT as second input, got: "+input.getField(1).type);
}
if (input.size() == 3 && !(input.getField(2).type == DataType.INTEGER || input.getField(2).type == DataType.LONG)) {
throw new RuntimeException("Expected an INT or LONG as second input, got: "+input.getField(2).type);
}
return new Schema(new Schema.FieldSchema(getSchemaName(this.getClass().getName().toLowerCase(), input),
inputFieldSchema.schema, DataType.BAG));
} catch (FrontendException e) {
e.printStackTrace();
throw new RuntimeException(e);
}
}