void writeVertexCSV()

in gremlin/neptune-social-media-utils/src/main/java/com/aws/neptune/utils/generator/CSVGenerator.java [248:292]


    void writeVertexCSV(VertexTypeBean type, String s3Bucket, String bucketFolder ){
        String fileName = type.name + ".csv";
        String filePath = "/tmp/" + fileName;
        
        ArrayList<String> header = new ArrayList<String>();
        
        S3Uploader s3Uploader = new S3Uploader();
        
        //header.add("node_id");
       
        //ejazs - adding headers per Amazon Neptune format for bulk loader
        header.add("~id");
        header.addAll(type.columns.keySet());
        header.add("~label");
        
        int botId = idFactory.getMinId(type.name);
        int topId = idFactory.getMaxId(type.name);
        
        try {
            CSVPrinter csvFilePrinter = new CSVPrinter(new FileWriter(filePath), csvFileFormat);
            // writing the csv header
            csvFilePrinter.printRecord(header);
            
            for (int i = botId; i<=topId; i++){
                ArrayList<Object> record = new ArrayList<Object>();
                //id for the vertex
                record.add(i);
                //properties for the vertex
                record.addAll(generateOneRecord(type.columns));
                //label for the vertex
                record.add(type.name);
                csvFilePrinter.printRecord(record);
            }
            csvFilePrinter.close();
            System.out.println("Generated vertex file: "+ filePath);
            
            File data = new File(filePath);
            s3Uploader.upload(data, s3Bucket, (bucketFolder == null ? fileName : bucketFolder+"/"+fileName));            
            System.out.println("Uploaded " + filePath + " to S3 location " + s3Bucket + (bucketFolder == null ? "" : "/"+bucketFolder));

            
        } catch (Exception e) {
            throw new RuntimeException(e.toString());
        }
    }