code: public static String toPigScript(Class<? extends TBase<?, ?>> thriftClass,
                                     Class<? extends LoadFunc> pigLoader) {
      StringBuilder sb = new StringBuilder();
      /* we are commenting out explicit schema specification. The schema is
       * included mainly to help the readers of the pig script. Pig learns the
       * schema directly from the loader.
       * If explicit schema is not commented, we might have surprising results
       * when a Thrift class (possibly in control of another team) changes,
       * but the Pig script is not updated. Commenting it out avoids this.
       */
      StringBuilder prefix = new StringBuilder("       --  ");
      sb.append("raw_data = load '$INPUT_FILES' using ")
        .append(pigLoader.getName())
        .append("('")
        .append(thriftClass.getName())
        .append("');\n")
        .append(prefix)
        .append("as ");
      prefix.append("   ");
  
      try {
        stringifySchema(sb, toSchema(thriftClass), DataType.TUPLE, prefix);
      } catch (FrontendException e) {
        throw new RuntimeException(e);
      }
  
      sb.append("\n");
      return sb.toString();
    }
docs: Turn a Thrift Struct into a loading schema for a pig script.