package com.github.projectflink.javaTestPlan; import org.apache.avro.file.DataFileWriter; import org.apache.avro.io.DatumWriter; import org.apache.avro.specific.SpecificDatumWriter; import com.github.projectflink.testPlan.Order; import java.io.File; import java.util.Scanner; public class AvroFileGenerator { public static String outputOrderAvroPath; public static String ordersPath; public static void main(String[] args) throws Exception { // generate only avro file if (args.length == 2) { ordersPath = args[0]; outputOrderAvroPath = args[1]; // Generate file for avro test DatumWriter<Order> orderDatumWriter = new SpecificDatumWriter<Order>(Order.class); DataFileWriter<Order> dataFileWriter = new DataFileWriter<Order>(orderDatumWriter); dataFileWriter.create(Order.getClassSchema(), new File(outputOrderAvroPath)); Scanner s = new Scanner(new File(ordersPath)); while (s.hasNextLine()) { @SuppressWarnings("resource") Scanner lineScanner = new Scanner(s.nextLine()).useDelimiter("\\|"); Order o = new Order(); o.setOOrderkey(lineScanner.nextInt()); o.setOCustkey(lineScanner.nextInt()); o.setOOrderstatus(lineScanner.next()); o.setOTotalprice(lineScanner.nextFloat()); o.setOOrderdate(lineScanner.next()); o.setOOrderpriority(lineScanner.next()); o.setOClerk(lineScanner.next()); o.setOShipproprity(lineScanner.nextInt()); o.setOComment(lineScanner.next()); dataFileWriter.append(o); lineScanner.close(); } dataFileWriter.flush(); s.close(); dataFileWriter.close(); return; } else { System.err.println("Usage: <inputFilePath> <outputAvroPath>"); System.exit(1); } } }