in src/main/java/com/amazonaws/services/neptune/profiles/neptune_ml/NeptuneMachineLearningExportEventHandlerV2.java [172:222]
private void createTrainingJobConfigurationFile(TrainingDataWriterConfigV2 trainingDataWriterConfig,
Path outputPath,
GraphSchema graphSchema,
PropertyName propertyName,
TransferManagerWrapper transferManager) throws Exception {
File outputDirectory = outputPath.toFile();
String filename = String.format("%s.json", trainingDataWriterConfig.name());
File trainingJobConfigurationFile = new File(outputPath.toFile(), filename);
try (Writer writer = new PrintWriter(trainingJobConfigurationFile)) {
if (dataModel == NeptuneMLSourceDataModel.RDF) {
Collection<String> filenames = new ArrayList<>();
File[] directories = outputDirectory.listFiles(File::isDirectory);
for (File directory : directories) {
File[] files = directory.listFiles(File::isFile);
for (File file : files) {
filenames.add(outputDirectory.toPath().relativize(file.toPath()).toString());
}
}
new RdfTrainingDataConfigWriter(
filenames,
createJsonGenerator(writer),
trainingDataWriterConfig).write();
} else {
new PropertyGraphTrainingDataConfigWriterV2(
graphSchema,
createJsonGenerator(writer),
propertyName,
printerOptions,
trainingDataWriterConfig).write(includeEdgeFeatures);
}
}
if (StringUtils.isNotEmpty(outputS3Path)) {
Timer.timedActivity("uploading training job configuration file to S3",
(CheckedActivity.Runnable) () -> {
S3ObjectInfo outputS3ObjectInfo = calculateOutputS3Path(outputDirectory);
uploadTrainingJobConfigurationFileToS3(
filename,
transferManager.get(),
trainingJobConfigurationFile,
outputS3ObjectInfo);
});
}
}