in mahout/src/main/java/com/twitter/elephantbird/pig/mahout/VectorWritableConverter.java [241:268]
public ResourceFieldSchema getLoadSchema() throws IOException {
Byte valueType = floatPrecision ? DataType.FLOAT : DataType.DOUBLE;
if (sparse) {
FieldSchema entriesFieldSchema;
if (PigUtil.Pig9orNewer) {
Schema tupleSchema = new Schema(Lists.newArrayList(new FieldSchema("index",
DataType.INTEGER), new FieldSchema("value", valueType)));
Schema bagSchema = new Schema(Lists.newArrayList(new FieldSchema("t", tupleSchema,
DataType.TUPLE)));
entriesFieldSchema = new FieldSchema("entries", bagSchema, DataType.BAG);
} else {
entriesFieldSchema =
new FieldSchema("entries", new Schema(Lists.newArrayList(new FieldSchema("index",
DataType.INTEGER), new FieldSchema("value", valueType))), DataType.BAG);
}
if (cardinality != null) {
return new ResourceFieldSchema(new FieldSchema(null, new Schema(
Lists.newArrayList(entriesFieldSchema))));
}
return new ResourceFieldSchema(new FieldSchema(null, new Schema(Lists.newArrayList(
new FieldSchema("cardinality", DataType.INTEGER), entriesFieldSchema))));
}
if (dense && cardinality != null) {
return new ResourceFieldSchema(new FieldSchema(null, new Schema(Collections.nCopies(
cardinality, new FieldSchema(null, valueType)))));
}
return new ResourceFieldSchema(new FieldSchema(null, DataType.BYTEARRAY));
}