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();
}
}