public ResourceFieldSchema getLoadSchema()

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));
  }