private static void exportToCsv()

in tools/query_verification/src/main/java/com/google/bigquery/QueryVerifier.java [212:253]


    private static void exportToCsv(List<List<List<String>>> rawResults, String folderName, String fileNameSuffix) throws IOException {
        Path csvOutputDirectory = Paths.get("query_verification_output", folderName);

        if (csvOutputDirectory.toFile().exists()) {
            // Clear out old output files in the same path
            Files.walk(csvOutputDirectory).forEach(subPath -> {
                // Delete files previously generated by query verification
                if (subPath.getFileName().toString().matches("query\\d+" + fileNameSuffix + "\\.csv")) {
                    subPath.toFile().delete();
                }
            });
            if (csvOutputDirectory.toFile().length() == 0 ) {
                Files.deleteIfExists(csvOutputDirectory);
            }
        }
        Files.createDirectories(csvOutputDirectory);

        for (int i = 0; i < rawResults.size(); i++) {
            List<List<String>> queryResults = rawResults.get(i);

            // Skip if results are empty
            if (queryResults == null || queryResults.isEmpty()) {
                continue;
            }

            // Filepath for each query is "output/[data_warehouse_name]/query[id].csv"
            File csvOutputFile = new File(String.format("%s/query%d%s.csv", csvOutputDirectory, i + 1, fileNameSuffix));
            csvOutputFile.createNewFile();
            FileWriter writer = new FileWriter(csvOutputFile);

            // Convert list to csv row and write in file
            queryResults.stream().map(row -> String.join(",", row)).forEach(row -> {
                try {
                    writer.write(row + System.lineSeparator());
                } catch (IOException e) {
                    e.printStackTrace();
                }
            });

            writer.close();
        }
    }