public static void concat(
      Iterable<File> inputFiles,
      File outputFile,
      int rowGroupSize,
      Schema schema,
      Map<String, String> metadata)
      throws IOException {
    OutputFile file = Files.localOutput(outputFile);
    ParquetFileWriter writer =
        new ParquetFileWriter(
            ParquetIO.file(file),
            ParquetSchemaUtil.convert(schema, "table"),
            ParquetFileWriter.Mode.CREATE,
            rowGroupSize,
            0);
    writer.start();
    for (File inputFile : inputFiles) {
      writer.appendFile(ParquetIO.file(Files.localInput(inputFile)));
    }
    writer.end(metadata);
  }
Combines several files into one

@param inputFiles an {@link Iterable} of parquet files. The order of iteration determines the
    order in which content of files are read and written to the {@code outputFile}
@param outputFile the output parquet file containing all the data from {@code inputFiles}
@param rowGroupSize the row group size to use when writing the {@code outputFile}
@param schema the schema of the data
@param metadata extraMetadata to write at the footer of the {@code outputFile}
amoro-format-mixed/amoro-mixed-hive/src/main/java/org/apache/iceberg/parquet/AdaptHiveParquet.java